Commit dcfd759a authored by 仇晓婷's avatar 仇晓婷

Merge branch 'product' of http://git.mes123.com/zhouyx/mes-ui into product

parents a89f21ec 406a3cca
......@@ -479,7 +479,7 @@ export default {
this.$api.post(`${systemUrl}/user/paged`, {
conditions: [],
pageIndex: 1,
pageSize: 1000,
pageSize: 100000,
})
.then((r) => {
if (r.success) {
......
<template>
<div>
<Input v-model.trim="curModel" @on-change="change" placeholder="请输入图标" @>
<span slot="prepend">
<div>
<Input v-model.trim="curModel" @on-change="change" placeholder="请输入图标">
<span slot="prepend">
<a @click="iconModal=true" class="setIcon">
<Icon :type="type"></Icon>
<Icon :type="type"></Icon>
</a>
</span>
</span>
<span slot="append">
<a @click="clearIcon" class="setIcon">
<Icon type="ios-close" />
</a>
</span>
</Input>
<Modal v-model="iconModal" title="设置图标" :width="800">
<div id="icons">
<a v-for="(icon,i) in iconList" :key="i" @click="setIcon(icon)" :title="icon">
<Icon :type="icon" size="36"></Icon>
</a>
</div>
<div slot="footer"></div>
<div id="icons">
<a v-for="(icon,i) in iconList" :key="i" @click="setIcon(icon)" :title="icon">
<Icon :type="icon" size="36"></Icon>
</a>
</div>
<div slot="footer"></div>
</Modal>
</div>
</div>
</template>
<script>
export default {
model:{
prop:"value",
event:"on-change"
model: {
prop: "value",
event: "on-change"
},
props:{
value:{
type:String
props: {
value: {
type: String
}
},
name: 'InputIcon',
data() {
return {
curModel:this.value,
iconModal: false,
icons:
'ios-add,md-add,ios-add-circle,ios-add-circle-outline,md-add-circle,ios-alarm,ios-alarm-outline,md-alarm,ios-albums,ios-albums-outline,md-albums,ios-alert,ios-alert-outline,md-alert,ios-american-football,ios-american-football-outline,md-american-football,ios-analytics,ios-analytics-outline,md-analytics,logo-android,logo-angular,ios-aperture,ios-aperture-outline,md-aperture,logo-apple,ios-apps,ios-apps-outline,md-apps,ios-appstore,ios-appstore-outline,md-appstore,ios-archive,ios-archive-outline,md-archive,ios-arrow-back,md-arrow-back,ios-arrow-down,md-arrow-down,ios-arrow-dropdown,md-arrow-dropdown,ios-arrow-dropdown-circle,md-arrow-dropdown-circle,ios-arrow-dropleft,md-arrow-dropleft,ios-arrow-dropleft-circle,md-arrow-dropleft-circle,ios-arrow-dropright,md-arrow-dropright,ios-arrow-dropright-circle,md-arrow-dropright-circle,ios-arrow-dropup,md-arrow-dropup,ios-arrow-dropup-circle,md-arrow-dropup-circle,ios-arrow-forward,md-arrow-forward,ios-arrow-round-back,md-arrow-round-back,ios-arrow-round-down,md-arrow-round-down,ios-arrow-round-forward,md-arrow-round-forward,ios-arrow-round-up,md-arrow-round-up,ios-arrow-up,md-arrow-up,ios-at,ios-at-outline,md-at,ios-attach,md-attach,ios-backspace,ios-backspace-outline,md-backspace,ios-barcode,ios-barcode-outline,md-barcode,ios-baseball,ios-baseball-outline,md-baseball,ios-basket,ios-basket-outline,md-basket,ios-basketball,ios-basketball-outline,md-basketball,ios-battery-charging,md-battery-charging,ios-battery-dead,md-battery-dead,ios-battery-full,md-battery-full,ios-beaker,ios-beaker-outline,md-beaker,ios-beer,ios-beer-outline,md-beer,ios-bicycle,md-bicycle,logo-bitcoin,ios-bluetooth,md-bluetooth,ios-boat,ios-boat-outline,md-boat,ios-body,ios-body-outline,md-body,ios-bonfire,ios-bonfire-outline,md-bonfire,ios-book,ios-book-outline,md-book,ios-bookmark,ios-bookmark-outline,md-bookmark,ios-bookmarks,ios-bookmarks-outline,md-bookmarks,ios-bowtie,ios-bowtie-outline,md-bowtie,ios-briefcase,ios-briefcase-outline,md-briefcase,ios-browsers,ios-browsers-outline,md-browsers,ios-brush,ios-brush-outline,md-brush,logo-buffer,ios-bug,ios-bug-outline,md-bug,ios-build,ios-build-outline,md-build,ios-bulb,ios-bulb-outline,md-bulb,ios-bus,ios-bus-outline,md-bus,ios-cafe,ios-cafe-outline,md-cafe,ios-calculator,ios-calculator-outline,md-calculator,ios-calendar,ios-calendar-outline,md-calendar,ios-call,ios-call-outline,md-call,ios-camera,ios-camera-outline,md-camera,ios-car,ios-car-outline,md-car,ios-card,ios-card-outline,md-card,ios-cart,ios-cart-outline,md-cart,ios-cash,ios-cash-outline,md-cash,ios-chatboxes,ios-chatboxes-outline,md-chatboxes,ios-chatbubbles,ios-chatbubbles-outline,md-chatbubbles,ios-checkbox,ios-checkbox-outline,md-checkbox,md-checkbox-outline,ios-checkmark,md-checkmark,ios-checkmark-circle,ios-checkmark-circle-outline,md-checkmark-circle,md-checkmark-circle-outline,logo-chrome,ios-clipboard,ios-clipboard-outline,md-clipboard,ios-clock,ios-clock-outline,md-clock,ios-close,md-close,ios-close-circle,ios-close-circle-outline,md-close-circle,ios-closed-captioning,ios-closed-captioning-outline,md-closed-captioning,ios-cloud,ios-cloud-outline,md-cloud,ios-cloud-circle,ios-cloud-circle-outline,md-cloud-circle,ios-cloud-done,ios-cloud-done-outline,md-cloud-done,ios-cloud-download,ios-cloud-download-outline,md-cloud-download,md-cloud-outline,ios-cloud-upload,ios-cloud-upload-outline,md-cloud-upload,ios-cloudy,ios-cloudy-outline,md-cloudy,ios-cloudy-night,ios-cloudy-night-outline,md-cloudy-night,ios-code,md-code,ios-code-download,md-code-download,ios-code-working,md-code-working,logo-codepen,ios-cog,ios-cog-outline,md-cog,ios-color-fill,ios-color-fill-outline,md-color-fill,ios-color-filter,ios-color-filter-outline,md-color-filter,ios-color-palette,ios-color-palette-outline,md-color-palette,ios-color-wand,ios-color-wand-outline,md-color-wand,ios-compass,ios-compass-outline,md-compass,ios-construct,ios-construct-outline,md-construct,ios-contact,ios-contact-outline,md-contact,ios-contacts,ios-contacts-outline,md-contacts,ios-contract,md-contract,ios-contrast,md-contrast,ios-copy,ios-copy-outline,md-copy,ios-create,ios-create-outline,md-create,ios-crop,ios-crop-outline,md-crop,logo-css3,ios-cube,ios-cube-outline,md-cube,ios-cut,ios-cut-outline,md-cut,logo-designernews,ios-desktop,ios-desktop-outline,md-desktop,ios-disc,ios-disc-outline,md-disc,ios-document,ios-document-outline,md-document,ios-done-all,md-done-all,ios-download,ios-download-outline,md-download,logo-dribbble,logo-dropbox,ios-easel,ios-easel-outline,md-easel,ios-egg,ios-egg-outline,md-egg,logo-euro,ios-exit,ios-exit-outline,md-exit,ios-expand,md-expand,ios-eye,ios-eye-outline,md-eye,ios-eye-off,ios-eye-off-outline,md-eye-off,logo-facebook,ios-fastforward,ios-fastforward-outline,md-fastforward,ios-female,md-female,ios-filing,ios-filing-outline,md-filing,ios-film,ios-film-outline,md-film,ios-finger-print,md-finger-print,ios-flag,ios-flag-outline,md-flag,ios-flame,ios-flame-outline,md-flame,ios-flash,ios-flash-outline,md-flash,ios-flask,ios-flask-outline,md-flask,ios-flower,ios-flower-outline,md-flower,ios-folder,ios-folder-outline,md-folder,ios-folder-open,ios-folder-open-outline,md-folder-open,ios-football,ios-football-outline,md-football,logo-foursquare,logo-freebsd-devil,ios-funnel,ios-funnel-outline,md-funnel,ios-game-controller-a,ios-game-controller-a-outline,md-game-controller-a,ios-game-controller-b,ios-game-controller-b-outline,md-game-controller-b,ios-git-branch,md-git-branch,ios-git-commit,md-git-commit,ios-git-compare,md-git-compare,ios-git-merge,md-git-merge,ios-git-network,md-git-network,ios-git-pull-request,md-git-pull-request,logo-github,ios-glasses,ios-glasses-outline,md-glasses,ios-globe,ios-globe-outline,md-globe,logo-google,logo-googleplus,ios-grid,ios-grid-outline,md-grid,logo-hackernews,ios-hammer,ios-hammer-outline,md-hammer,ios-hand,ios-hand-outline,md-hand,ios-happy,ios-happy-outline,md-happy,ios-headset,ios-headset-outline,md-headset,ios-heart,ios-heart-outline,md-heart,md-heart-outline,ios-help,md-help,ios-help-buoy,ios-help-buoy-outline,md-help-buoy,ios-help-circle,ios-help-circle-outline,md-help-circle,ios-home,ios-home-outline,md-home,logo-html5,ios-ice-cream,ios-ice-cream-outline,md-ice-cream,ios-image,ios-image-outline,md-image,ios-images,ios-images-outline,md-images,ios-infinite,ios-infinite-outline,md-infinite,ios-information,md-information,ios-information-circle,ios-information-circle-outline,md-information-circle,logo-instagram,ios-ionic,ios-ionic-outline,md-ionic,ios-ionitron,ios-ionitron-outline,md-ionitron,logo-javascript,ios-jet,ios-jet-outline,md-jet,ios-key,ios-key-outline,md-key,ios-keypad,ios-keypad-outline,md-keypad,ios-laptop,md-laptop,ios-leaf,ios-leaf-outline,md-leaf,ios-link,ios-link-outline,md-link,logo-linkedin,ios-list,md-list,ios-list-box,ios-list-box-outline,md-list-box,ios-locate,ios-locate-outline,md-locate,ios-lock,ios-lock-outline,md-lock,ios-log-in,md-log-in,ios-log-out,md-log-out,ios-magnet,ios-magnet-outline,md-magnet,ios-mail,ios-mail-outline,md-mail,ios-mail-open,ios-mail-open-outline,md-mail-open,ios-male,md-male,ios-man,ios-man-outline,md-man,ios-map,ios-map-outline,md-map,logo-markdown,ios-medal,ios-medal-outline,md-medal,ios-medical,ios-medical-outline,md-medical,ios-medkit,ios-medkit-outline,md-medkit,ios-megaphone,ios-megaphone-outline,md-megaphone,ios-menu,ios-menu-outline,md-menu,ios-mic,ios-mic-outline,md-mic,ios-mic-off,ios-mic-off-outline,md-mic-off,ios-microphone,ios-microphone-outline,md-microphone,ios-moon,ios-moon-outline,md-moon,ios-more,ios-more-outline,md-more,ios-move,md-move,ios-musical-note,ios-musical-note-outline,md-musical-note,ios-musical-notes,ios-musical-notes-outline,md-musical-notes,ios-navigate,ios-navigate-outline,md-navigate,ios-no-smoking,ios-no-smoking-outline,md-no-smoking,logo-nodejs,ios-notifications,ios-notifications-outline,md-notifications,ios-notifications-off,ios-notifications-off-outline,md-notifications-off,md-notifications-outline,ios-nuclear,ios-nuclear-outline,md-nuclear,ios-nutrition,ios-nutrition-outline,md-nutrition,logo-octocat,ios-open,ios-open-outline,md-open,ios-options,ios-options-outline,md-options,ios-outlet,ios-outlet-outline,md-outlet,ios-paper,ios-paper-outline,md-paper,ios-paper-plane,ios-paper-plane-outline,md-paper-plane,ios-partly-sunny,ios-partly-sunny-outline,md-partly-sunny,ios-pause,ios-pause-outline,md-pause,ios-paw,ios-paw-outline,md-paw,ios-people,ios-people-outline,md-people,ios-person,ios-person-outline,md-person,ios-person-add,ios-person-add-outline,md-person-add,ios-phone-landscape,md-phone-landscape,ios-phone-portrait,md-phone-portrait,ios-photos,ios-photos-outline,md-photos,ios-pie,ios-pie-outline,md-pie,ios-pin,ios-pin-outline,md-pin,ios-pint,ios-pint-outline,md-pint,logo-pinterest,ios-pizza,ios-pizza-outline,md-pizza,ios-plane,ios-plane-outline,md-plane,ios-planet,ios-planet-outline,md-planet,ios-play,ios-play-outline,md-play,logo-playstation,ios-podium,ios-podium-outline,md-podium,ios-power,ios-power-outline,md-power,ios-pricetag,ios-pricetag-outline,md-pricetag,ios-pricetags,ios-pricetags-outline,md-pricetags,ios-print,ios-print-outline,md-print,ios-pulse,ios-pulse-outline,md-pulse,logo-python,ios-qr-scanner,md-qr-scanner,ios-quote,ios-quote-outline,md-quote,ios-radio,ios-radio-outline,md-radio,ios-radio-button-off,md-radio-button-off,ios-radio-button-on,md-radio-button-on,ios-rainy,ios-rainy-outline,md-rainy,ios-recording,ios-recording-outline,md-recording,logo-reddit,ios-redo,ios-redo-outline,md-redo,ios-refresh,md-refresh,ios-refresh-circle,ios-refresh-circle-outline,md-refresh-circle,ios-remove,md-remove,ios-remove-circle,ios-remove-circle-outline,md-remove-circle,ios-reorder,md-reorder,ios-repeat,md-repeat,ios-resize,md-resize,ios-restaurant,ios-restaurant-outline,md-restaurant,ios-return-left,md-return-left,ios-return-right,md-return-right,ios-reverse-camera,ios-reverse-camera-outline,md-reverse-camera,ios-rewind,ios-rewind-outline,md-rewind,ios-ribbon,ios-ribbon-outline,md-ribbon,ios-rose,ios-rose-outline,md-rose,logo-rss,ios-sad,ios-sad-outline,md-sad,logo-sass,ios-school,ios-school-outline,md-school,ios-search,ios-search-outline,md-search,ios-send,ios-send-outline,md-send,ios-settings,ios-settings-outline,md-settings,ios-share,ios-share-outline,md-share,ios-share-alt,ios-share-alt-outline,md-share-alt,ios-shirt,ios-shirt-outline,md-shirt,ios-shuffle,md-shuffle,ios-skip-backward,ios-skip-backward-outline,md-skip-backward,ios-skip-forward,ios-skip-forward-outline,md-skip-forward,logo-skype,logo-snapchat,ios-snow,ios-snow-outline,md-snow,ios-speedometer,ios-speedometer-outline,md-speedometer,ios-square,ios-square-outline,md-square,md-square-outline,ios-star,ios-star-outline,md-star,ios-star-half,md-star-half,md-star-outline,ios-stats,ios-stats-outline,md-stats,logo-steam,ios-stopwatch,ios-stopwatch-outline,md-stopwatch,ios-subway,ios-subway-outline,md-subway,ios-sunny,ios-sunny-outline,md-sunny,ios-swap,md-swap,ios-switch,ios-switch-outline,md-switch,ios-sync,md-sync,ios-tablet-landscape,md-tablet-landscape,ios-tablet-portrait,md-tablet-portrait,ios-tennisball,ios-tennisball-outline,md-tennisball,ios-text,ios-text-outline,md-text,ios-thermometer,ios-thermometer-outline,md-thermometer,ios-thumbs-down,ios-thumbs-down-outline,md-thumbs-down,ios-thumbs-up,ios-thumbs-up-outline,md-thumbs-up,ios-thunderstorm,ios-thunderstorm-outline,md-thunderstorm,ios-time,ios-time-outline,md-time,ios-timer,ios-timer-outline,md-timer,ios-train,ios-train-outline,md-train,ios-transgender,md-transgender,ios-trash,ios-trash-outline,md-trash,ios-trending-down,md-trending-down,ios-trending-up,md-trending-up,ios-trophy,ios-trophy-outline,md-trophy,logo-tumblr,logo-tux,logo-twitch,logo-twitter,ios-umbrella,ios-umbrella-outline,md-umbrella,ios-undo,ios-undo-outline,md-undo,ios-unlock,ios-unlock-outline,md-unlock,logo-usd,ios-videocam,ios-videocam-outline,md-videocam,logo-vimeo,ios-volume-down,md-volume-down,ios-volume-mute,md-volume-mute,ios-volume-off,md-volume-off,ios-volume-up,md-volume-up,ios-walk,md-walk,ios-warning,ios-warning-outline,md-warning,ios-watch,md-watch,ios-water,ios-water-outline,md-water,logo-whatsapp,ios-wifi,ios-wifi-outline,md-wifi,logo-windows,ios-wine,ios-wine-outline,md-wine,ios-woman,ios-woman-outline,md-woman,logo-wordpress,logo-xbox,logo-yahoo,logo-yen,logo-youtube,ios-loading'
}
},
computed: {
iconList() {
return this.icons.split(',')
name: 'InputIcon',
data() {
return {
curModel: this.value,
iconModal: false,
icons: 'ios-add,md-add,ios-add-circle,ios-add-circle-outline,md-add-circle,ios-alarm,ios-alarm-outline,md-alarm,ios-albums,ios-albums-outline,md-albums,ios-alert,ios-alert-outline,md-alert,ios-american-football,ios-american-football-outline,md-american-football,ios-analytics,ios-analytics-outline,md-analytics,logo-android,logo-angular,ios-aperture,ios-aperture-outline,md-aperture,logo-apple,ios-apps,ios-apps-outline,md-apps,ios-appstore,ios-appstore-outline,md-appstore,ios-archive,ios-archive-outline,md-archive,ios-arrow-back,md-arrow-back,ios-arrow-down,md-arrow-down,ios-arrow-dropdown,md-arrow-dropdown,ios-arrow-dropdown-circle,md-arrow-dropdown-circle,ios-arrow-dropleft,md-arrow-dropleft,ios-arrow-dropleft-circle,md-arrow-dropleft-circle,ios-arrow-dropright,md-arrow-dropright,ios-arrow-dropright-circle,md-arrow-dropright-circle,ios-arrow-dropup,md-arrow-dropup,ios-arrow-dropup-circle,md-arrow-dropup-circle,ios-arrow-forward,md-arrow-forward,ios-arrow-round-back,md-arrow-round-back,ios-arrow-round-down,md-arrow-round-down,ios-arrow-round-forward,md-arrow-round-forward,ios-arrow-round-up,md-arrow-round-up,ios-arrow-up,md-arrow-up,ios-at,ios-at-outline,md-at,ios-attach,md-attach,ios-backspace,ios-backspace-outline,md-backspace,ios-barcode,ios-barcode-outline,md-barcode,ios-baseball,ios-baseball-outline,md-baseball,ios-basket,ios-basket-outline,md-basket,ios-basketball,ios-basketball-outline,md-basketball,ios-battery-charging,md-battery-charging,ios-battery-dead,md-battery-dead,ios-battery-full,md-battery-full,ios-beaker,ios-beaker-outline,md-beaker,ios-beer,ios-beer-outline,md-beer,ios-bicycle,md-bicycle,logo-bitcoin,ios-bluetooth,md-bluetooth,ios-boat,ios-boat-outline,md-boat,ios-body,ios-body-outline,md-body,ios-bonfire,ios-bonfire-outline,md-bonfire,ios-book,ios-book-outline,md-book,ios-bookmark,ios-bookmark-outline,md-bookmark,ios-bookmarks,ios-bookmarks-outline,md-bookmarks,ios-bowtie,ios-bowtie-outline,md-bowtie,ios-briefcase,ios-briefcase-outline,md-briefcase,ios-browsers,ios-browsers-outline,md-browsers,ios-brush,ios-brush-outline,md-brush,logo-buffer,ios-bug,ios-bug-outline,md-bug,ios-build,ios-build-outline,md-build,ios-bulb,ios-bulb-outline,md-bulb,ios-bus,ios-bus-outline,md-bus,ios-cafe,ios-cafe-outline,md-cafe,ios-calculator,ios-calculator-outline,md-calculator,ios-calendar,ios-calendar-outline,md-calendar,ios-call,ios-call-outline,md-call,ios-camera,ios-camera-outline,md-camera,ios-car,ios-car-outline,md-car,ios-card,ios-card-outline,md-card,ios-cart,ios-cart-outline,md-cart,ios-cash,ios-cash-outline,md-cash,ios-chatboxes,ios-chatboxes-outline,md-chatboxes,ios-chatbubbles,ios-chatbubbles-outline,md-chatbubbles,ios-checkbox,ios-checkbox-outline,md-checkbox,md-checkbox-outline,ios-checkmark,md-checkmark,ios-checkmark-circle,ios-checkmark-circle-outline,md-checkmark-circle,md-checkmark-circle-outline,logo-chrome,ios-clipboard,ios-clipboard-outline,md-clipboard,ios-clock,ios-clock-outline,md-clock,ios-close,md-close,ios-close-circle,ios-close-circle-outline,md-close-circle,ios-closed-captioning,ios-closed-captioning-outline,md-closed-captioning,ios-cloud,ios-cloud-outline,md-cloud,ios-cloud-circle,ios-cloud-circle-outline,md-cloud-circle,ios-cloud-done,ios-cloud-done-outline,md-cloud-done,ios-cloud-download,ios-cloud-download-outline,md-cloud-download,md-cloud-outline,ios-cloud-upload,ios-cloud-upload-outline,md-cloud-upload,ios-cloudy,ios-cloudy-outline,md-cloudy,ios-cloudy-night,ios-cloudy-night-outline,md-cloudy-night,ios-code,md-code,ios-code-download,md-code-download,ios-code-working,md-code-working,logo-codepen,ios-cog,ios-cog-outline,md-cog,ios-color-fill,ios-color-fill-outline,md-color-fill,ios-color-filter,ios-color-filter-outline,md-color-filter,ios-color-palette,ios-color-palette-outline,md-color-palette,ios-color-wand,ios-color-wand-outline,md-color-wand,ios-compass,ios-compass-outline,md-compass,ios-construct,ios-construct-outline,md-construct,ios-contact,ios-contact-outline,md-contact,ios-contacts,ios-contacts-outline,md-contacts,ios-contract,md-contract,ios-contrast,md-contrast,ios-copy,ios-copy-outline,md-copy,ios-create,ios-create-outline,md-create,ios-crop,ios-crop-outline,md-crop,logo-css3,ios-cube,ios-cube-outline,md-cube,ios-cut,ios-cut-outline,md-cut,logo-designernews,ios-desktop,ios-desktop-outline,md-desktop,ios-disc,ios-disc-outline,md-disc,ios-document,ios-document-outline,md-document,ios-done-all,md-done-all,ios-download,ios-download-outline,md-download,logo-dribbble,logo-dropbox,ios-easel,ios-easel-outline,md-easel,ios-egg,ios-egg-outline,md-egg,logo-euro,ios-exit,ios-exit-outline,md-exit,ios-expand,md-expand,ios-eye,ios-eye-outline,md-eye,ios-eye-off,ios-eye-off-outline,md-eye-off,logo-facebook,ios-fastforward,ios-fastforward-outline,md-fastforward,ios-female,md-female,ios-filing,ios-filing-outline,md-filing,ios-film,ios-film-outline,md-film,ios-finger-print,md-finger-print,ios-flag,ios-flag-outline,md-flag,ios-flame,ios-flame-outline,md-flame,ios-flash,ios-flash-outline,md-flash,ios-flask,ios-flask-outline,md-flask,ios-flower,ios-flower-outline,md-flower,ios-folder,ios-folder-outline,md-folder,ios-folder-open,ios-folder-open-outline,md-folder-open,ios-football,ios-football-outline,md-football,logo-foursquare,logo-freebsd-devil,ios-funnel,ios-funnel-outline,md-funnel,ios-game-controller-a,ios-game-controller-a-outline,md-game-controller-a,ios-game-controller-b,ios-game-controller-b-outline,md-game-controller-b,ios-git-branch,md-git-branch,ios-git-commit,md-git-commit,ios-git-compare,md-git-compare,ios-git-merge,md-git-merge,ios-git-network,md-git-network,ios-git-pull-request,md-git-pull-request,logo-github,ios-glasses,ios-glasses-outline,md-glasses,ios-globe,ios-globe-outline,md-globe,logo-google,logo-googleplus,ios-grid,ios-grid-outline,md-grid,logo-hackernews,ios-hammer,ios-hammer-outline,md-hammer,ios-hand,ios-hand-outline,md-hand,ios-happy,ios-happy-outline,md-happy,ios-headset,ios-headset-outline,md-headset,ios-heart,ios-heart-outline,md-heart,md-heart-outline,ios-help,md-help,ios-help-buoy,ios-help-buoy-outline,md-help-buoy,ios-help-circle,ios-help-circle-outline,md-help-circle,ios-home,ios-home-outline,md-home,logo-html5,ios-ice-cream,ios-ice-cream-outline,md-ice-cream,ios-image,ios-image-outline,md-image,ios-images,ios-images-outline,md-images,ios-infinite,ios-infinite-outline,md-infinite,ios-information,md-information,ios-information-circle,ios-information-circle-outline,md-information-circle,logo-instagram,ios-ionic,ios-ionic-outline,md-ionic,ios-ionitron,ios-ionitron-outline,md-ionitron,logo-javascript,ios-jet,ios-jet-outline,md-jet,ios-key,ios-key-outline,md-key,ios-keypad,ios-keypad-outline,md-keypad,ios-laptop,md-laptop,ios-leaf,ios-leaf-outline,md-leaf,ios-link,ios-link-outline,md-link,logo-linkedin,ios-list,md-list,ios-list-box,ios-list-box-outline,md-list-box,ios-locate,ios-locate-outline,md-locate,ios-lock,ios-lock-outline,md-lock,ios-log-in,md-log-in,ios-log-out,md-log-out,ios-magnet,ios-magnet-outline,md-magnet,ios-mail,ios-mail-outline,md-mail,ios-mail-open,ios-mail-open-outline,md-mail-open,ios-male,md-male,ios-man,ios-man-outline,md-man,ios-map,ios-map-outline,md-map,logo-markdown,ios-medal,ios-medal-outline,md-medal,ios-medical,ios-medical-outline,md-medical,ios-medkit,ios-medkit-outline,md-medkit,ios-megaphone,ios-megaphone-outline,md-megaphone,ios-menu,ios-menu-outline,md-menu,ios-mic,ios-mic-outline,md-mic,ios-mic-off,ios-mic-off-outline,md-mic-off,ios-microphone,ios-microphone-outline,md-microphone,ios-moon,ios-moon-outline,md-moon,ios-more,ios-more-outline,md-more,ios-move,md-move,ios-musical-note,ios-musical-note-outline,md-musical-note,ios-musical-notes,ios-musical-notes-outline,md-musical-notes,ios-navigate,ios-navigate-outline,md-navigate,ios-no-smoking,ios-no-smoking-outline,md-no-smoking,logo-nodejs,ios-notifications,ios-notifications-outline,md-notifications,ios-notifications-off,ios-notifications-off-outline,md-notifications-off,md-notifications-outline,ios-nuclear,ios-nuclear-outline,md-nuclear,ios-nutrition,ios-nutrition-outline,md-nutrition,logo-octocat,ios-open,ios-open-outline,md-open,ios-options,ios-options-outline,md-options,ios-outlet,ios-outlet-outline,md-outlet,ios-paper,ios-paper-outline,md-paper,ios-paper-plane,ios-paper-plane-outline,md-paper-plane,ios-partly-sunny,ios-partly-sunny-outline,md-partly-sunny,ios-pause,ios-pause-outline,md-pause,ios-paw,ios-paw-outline,md-paw,ios-people,ios-people-outline,md-people,ios-person,ios-person-outline,md-person,ios-person-add,ios-person-add-outline,md-person-add,ios-phone-landscape,md-phone-landscape,ios-phone-portrait,md-phone-portrait,ios-photos,ios-photos-outline,md-photos,ios-pie,ios-pie-outline,md-pie,ios-pin,ios-pin-outline,md-pin,ios-pint,ios-pint-outline,md-pint,logo-pinterest,ios-pizza,ios-pizza-outline,md-pizza,ios-plane,ios-plane-outline,md-plane,ios-planet,ios-planet-outline,md-planet,ios-play,ios-play-outline,md-play,logo-playstation,ios-podium,ios-podium-outline,md-podium,ios-power,ios-power-outline,md-power,ios-pricetag,ios-pricetag-outline,md-pricetag,ios-pricetags,ios-pricetags-outline,md-pricetags,ios-print,ios-print-outline,md-print,ios-pulse,ios-pulse-outline,md-pulse,logo-python,ios-qr-scanner,md-qr-scanner,ios-quote,ios-quote-outline,md-quote,ios-radio,ios-radio-outline,md-radio,ios-radio-button-off,md-radio-button-off,ios-radio-button-on,md-radio-button-on,ios-rainy,ios-rainy-outline,md-rainy,ios-recording,ios-recording-outline,md-recording,logo-reddit,ios-redo,ios-redo-outline,md-redo,ios-refresh,md-refresh,ios-refresh-circle,ios-refresh-circle-outline,md-refresh-circle,ios-remove,md-remove,ios-remove-circle,ios-remove-circle-outline,md-remove-circle,ios-reorder,md-reorder,ios-repeat,md-repeat,ios-resize,md-resize,ios-restaurant,ios-restaurant-outline,md-restaurant,ios-return-left,md-return-left,ios-return-right,md-return-right,ios-reverse-camera,ios-reverse-camera-outline,md-reverse-camera,ios-rewind,ios-rewind-outline,md-rewind,ios-ribbon,ios-ribbon-outline,md-ribbon,ios-rose,ios-rose-outline,md-rose,logo-rss,ios-sad,ios-sad-outline,md-sad,logo-sass,ios-school,ios-school-outline,md-school,ios-search,ios-search-outline,md-search,ios-send,ios-send-outline,md-send,ios-settings,ios-settings-outline,md-settings,ios-share,ios-share-outline,md-share,ios-share-alt,ios-share-alt-outline,md-share-alt,ios-shirt,ios-shirt-outline,md-shirt,ios-shuffle,md-shuffle,ios-skip-backward,ios-skip-backward-outline,md-skip-backward,ios-skip-forward,ios-skip-forward-outline,md-skip-forward,logo-skype,logo-snapchat,ios-snow,ios-snow-outline,md-snow,ios-speedometer,ios-speedometer-outline,md-speedometer,ios-square,ios-square-outline,md-square,md-square-outline,ios-star,ios-star-outline,md-star,ios-star-half,md-star-half,md-star-outline,ios-stats,ios-stats-outline,md-stats,logo-steam,ios-stopwatch,ios-stopwatch-outline,md-stopwatch,ios-subway,ios-subway-outline,md-subway,ios-sunny,ios-sunny-outline,md-sunny,ios-swap,md-swap,ios-switch,ios-switch-outline,md-switch,ios-sync,md-sync,ios-tablet-landscape,md-tablet-landscape,ios-tablet-portrait,md-tablet-portrait,ios-tennisball,ios-tennisball-outline,md-tennisball,ios-text,ios-text-outline,md-text,ios-thermometer,ios-thermometer-outline,md-thermometer,ios-thumbs-down,ios-thumbs-down-outline,md-thumbs-down,ios-thumbs-up,ios-thumbs-up-outline,md-thumbs-up,ios-thunderstorm,ios-thunderstorm-outline,md-thunderstorm,ios-time,ios-time-outline,md-time,ios-timer,ios-timer-outline,md-timer,ios-train,ios-train-outline,md-train,ios-transgender,md-transgender,ios-trash,ios-trash-outline,md-trash,ios-trending-down,md-trending-down,ios-trending-up,md-trending-up,ios-trophy,ios-trophy-outline,md-trophy,logo-tumblr,logo-tux,logo-twitch,logo-twitter,ios-umbrella,ios-umbrella-outline,md-umbrella,ios-undo,ios-undo-outline,md-undo,ios-unlock,ios-unlock-outline,md-unlock,logo-usd,ios-videocam,ios-videocam-outline,md-videocam,logo-vimeo,ios-volume-down,md-volume-down,ios-volume-mute,md-volume-mute,ios-volume-off,md-volume-off,ios-volume-up,md-volume-up,ios-walk,md-walk,ios-warning,ios-warning-outline,md-warning,ios-watch,md-watch,ios-water,ios-water-outline,md-water,logo-whatsapp,ios-wifi,ios-wifi-outline,md-wifi,logo-windows,ios-wine,ios-wine-outline,md-wine,ios-woman,ios-woman-outline,md-woman,logo-wordpress,logo-xbox,logo-yahoo,logo-yen,logo-youtube,ios-loading'
}
},
type(){
if(this.curModel&&this.curModel!=''){
return this.curModel
}else{
return "md-add"
computed: {
iconList() {
return this.icons.split(',')
},
type() {
if (this.curModel && this.curModel != '') {
return this.curModel
} else {
return "md-add"
}
}
}
},
methods: {
setIcon(name) {
this.curModel=name;
this.iconModal=false;
this.$emit('on-change', name)
},
change(name){
this.$emit('on-change', name)
}
},
watch:{
value: {
handler(v, o) {
this.curModel = v
},
deep: true
methods: {
setIcon(name) {
this.curModel = name;
this.iconModal = false;
this.$emit('on-change', name)
},
change(name) {
this.$emit('on-change', name)
},
clearIcon() {
this.curModel = '';
this.$emit('on-change', '')
}
},
watch: {
value: {
handler(v, o) {
this.curModel = v
},
deep: true
}
}
}
}
</script>
<style lang="less">
#icons{
#icons {
max-height: 500px;
overflow: auto;
a{
a {
display: inline-block;
width: 40px;
height: 40px;
border: 1px solid transparent;
border: 1px solid transparent;
}
a:hover,.checked{
a:hover,
.checked {
border: 1px solid #999;
}
}
</style>
\ No newline at end of file
</style>
<template>
<div class="h100">
<DataGrid :columns="columns" ref="grid" :action="action">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入申请单号或订单编号" v-model="easySearch.keys.value" v-width="240" />
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<div class="h100">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入申请单号或订单编号" v-model="easySearch.keys.value" v-width="240" />
</FormItem>
<FormItem>
<Dictionary code="accessory.status" placeholder="请选择配套状态" :multiple="true" v-model="easySearch.status.value"></Dictionary>
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" fullscreen footer-hide @on-cancel="ok">
<component :is="detail" :eid="curId" :row="entity" @on-close="cancel" @on-ok="ok" />
<component :is="detail" :eid="curId" :row="entity" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</div>
</template>
<script>
import Api from "./api";
export default {
name: "list",
components: {},
head: {
title: "配套记录主表",
author: "henq",
description: "support_main 8/8/2020 9:47:54 AM",
},
data() {
return {
action: Api.index,
easySearch: {
keys: { op: "orderCode,code", value: null },
},
statuList: this.$store.getters.dictionaryByKey("accessory.status") || [],
statuList1: this.$store.getters.dictionaryByKey("outstore.status") || [],
modal: false,
title: "新增",
detail: null,
curId: 0,
entity: {},
columns: [
{
key: "code",
title: this.l("code"),
align: "left",
easy: true,
},
{
key: "finishDate",
title: this.l("finishDate"),
align: "center",
type: "date",
width:200,
},
{
key: "orderCode",
title: this.l("orderCode"),
align: "left",
easy: true,
},
{
key: "creationTime",
title: this.l("creationTime"),
align: "center",
type: "date",
width:200,
},
{ key: "creator", title: this.l("creator"), align: "left" },
{
key: "status",
title: this.l("status"),
align: "center",
width:150,
render: (h, params) => {
return h(
"span",
{
style: {
color: this.setName(this.statuList,params.row.status).color,
name: "list",
components: {},
head: {
title: "配套记录主表",
author: "henq",
description: "support_main 8/8/2020 9:47:54 AM",
},
data() {
return {
action: Api.index,
easySearch: {
keys: {
op: "orderCode,code",
value: null
},
status: {
op: "In",
value: [0, 1]
}
},
modal: false,
title: "新增",
detail: null,
curId: 0,
entity: {},
columns: [{
key: "code",
title: this.l("code"),
align: "left",
easy: true,
},
},
this.setName(this.statuList,params.row.status).name
);
},
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.getAccessory(params.row) },
key: "finishDate",
title: this.l("finishDate"),
align: "center",
type: "date",
width: 200,
},
"配套"
),
h(
"op",
{
attrs: { oprate: "edit" },
style:{color:params.row.status==0?"#bebebe":""},
on: { click: () => params.row.status!=0?this.getOutBound(params.row):null },
key: "orderCode",
title: this.l("orderCode"),
align: "left",
easy: true,
},
"出库单"
),
]);
},
},
],
};
},
mounted() {
this.search();
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
getAccessory(row) {
this.curId = row.id;
this.title = "配套";
this.entity = row;
this.detail = () => import("./accessory");
this.modal = true;
},
getOutBound(row) {
this.curId = row.id;
this.title = "出库单";
this.entity = row;
this.detail = () => import("./outbound");
this.modal = true;
{
key: "creationTime",
title: this.l("creationTime"),
align: "center",
type: "date",
width: 200,
},
{
key: "creator",
title: this.l("creator"),
align: "left"
},
{
key: "status",
title: this.l("status"),
align: "center",
width: 150,
code: 'accessory.status'
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h("div", {
class: "action"
}, [
h(
"op", {
attrs: {
oprate: "detail"
},
on: {
click: () => this.getAccessory(params.row)
},
},
"配套"
),
h(
"op", {
attrs: {
oprate: "edit"
},
style: {
color: params.row.status == 0 ? "#bebebe" : ""
},
on: {
click: () => params.row.status != 0 ? this.getOutBound(params.row) : null
},
},
"出库单"
),
]);
},
},
],
};
},
//配套申请
setName(list, v) {
let outPar = {
name: "",
color: "",
};
if ((v + "").indexOf(",") == -1) {
var item;
list.map((u) => {
if (u.code == v) {
item = u;
}
});
if (item) {
//this.items = item;
outPar = {
name: item.name,
color: item.color,
};
}
}
return outPar;
mounted() {
this.search();
},
cancel() {
this.curId = 0;
this.modal = false;
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
l(key) {
let vkey = "support_main" + "." + key;
return this.$t(vkey) || key;
methods: {
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
getAccessory(row) {
this.curId = row.id;
this.title = "配套";
this.entity = row;
this.detail = () => import("./accessory");
this.modal = true;
},
getOutBound(row) {
this.curId = row.id;
this.title = "出库单";
this.entity = row;
this.detail = () => import("./outbound");
this.modal = true;
},
//配套申请
setName(list, v) {
let outPar = {
name: "",
color: "",
};
if ((v + "").indexOf(",") == -1) {
var item;
list.map((u) => {
if (u.code == v) {
item = u;
}
});
if (item) {
//this.items = item;
outPar = {
name: item.name,
color: item.color,
};
}
}
return outPar;
},
cancel() {
this.curId = 0;
this.modal = false;
},
l(key) {
let vkey = "support_main" + "." + key;
return this.$t(vkey) || key;
},
},
},
};
</script>
<style lang="less">
</style>
\ No newline at end of file
</style>
<template>
<div style="width:100%;overflow:auto">
<div style="width:100%;overflow:auto">
<div style="width:80%; border-right:1px solid #ccc;padding-right:30px;float:left">
<Form :model="bugForm" :label-width="5" ref="formValidate">
<Row>
<Col span="9">
<FormItem label>
<span style="float:left">{{l('title')}}&nbsp;</span>
{{bugForm.title}}
</FormItem>
</Col>
<Col span="6">
<FormItem label>
级别
<Rate v-model="bugForm.level" disabled />
</FormItem>
</Col>
<Col span="9">
<FormItem label>
<span style="float:left">地址&nbsp;</span>
{{bugForm.pagePath}}
</FormItem>
</Col>
</Row>
<Row>
<FormItem label>
<span style="float:left">内容&nbsp;</span>
<dl v-html="bugForm.content" style="margin-left:40px;"></dl>
</FormItem>
</Row>
<Row>
<FormItem label>
<span style="float:left">附件&nbsp;</span>
<files ref="refFile" :parms="parms" unClosable />
</FormItem>
</Row>
<Row></Row>
<Row>
<FormItem label>
bug处理
<Input v-model="bugForm.remark" placeholder="请输入bug详情" type="textarea" :rows="5" />
</FormItem>
</Row>
<Row>
<Col span="12">
<FormItem label>
<radioButton code="Test.but.statusOper" v-model="bugForm.statusNew"></radioButton>
</FormItem>
</Col>
<Col span="12">
工时
<InputNumber :min="1" v-model="bugForm.time"></InputNumber>
</Col>
</Row>
</Form>
<Form :model="bugForm" :label-width="5" ref="formValidate">
<Row>
<Col span="9">
<FormItem label>
<span style="float:left">{{l('title')}}&nbsp;</span>
{{bugForm.title}}
</FormItem>
</Col>
<Col span="6">
<FormItem label>
级别
<Rate v-model="bugForm.level" disabled />
</FormItem>
</Col>
<Col span="9">
<FormItem label>
<span style="float:left">地址&nbsp;</span>
{{bugForm.pagePath}}
</FormItem>
</Col>
</Row>
<Row>
<FormItem label>
<span style="float:left">内容&nbsp;</span>
<dl v-html="bugForm.content" style="margin-left:40px;"></dl>
</FormItem>
</Row>
<Row>
<FormItem label>
<span style="float:left">附件&nbsp;</span>
<files ref="refFile" :parms="parms" unClosable />
</FormItem>
</Row>
<Row></Row>
<Row>
<FormItem label>
bug处理
<Input v-model="bugForm.remark" placeholder="请输入bug详情" type="textarea" :rows="5" />
</FormItem>
</Row>
<Row>
<Col span="12">
<FormItem label>
<radioButton code="Test.but.statusOper" v-model="bugForm.statusNew"></radioButton>
</FormItem>
</Col>
<Col span="12">
工时
<InputNumber :min="1" v-model="bugForm.time"></InputNumber>
</Col>
</Row>
</Form>
</div>
<div class="rightDiv" :style="{height:divHeight}">
<Timeline>
<TimelineItem v-for="(item,index) in timeLineList" :key="index">
<a class="time" v-if="item.action===2" @click="searchInfo(item)">
<state code="Test.bug.statusHistory" :value="item.action" type="text"></state>
</a>
<p class="time" v-else>
<state code="Test.bug.statusHistory" :value="item.action" type="text"></state>
</p>
<p class="content">{{item.actionName}}</p>
<p class="content">{{item.creationTime}}</p>
</TimelineItem>
</Timeline>
<Timeline>
<TimelineItem v-for="(item,index) in timeLineList" :key="index">
<a class="time" v-if="item.action===2" @click="searchInfo(item)">
<state code="Test.bug.statusHistory" :value="item.action" type="text"></state>
</a>
<p class="time" v-else>
<state code="Test.bug.statusHistory" :value="item.action" type="text"></state>
</p>
<Tooltip max-width="400" :content="item.remark" v-if="item.remark">
<a>查看</a>
</Tooltip>
<p class="content">{{item.actionName}}</p>
<p class="content">{{item.creationTime}}</p>
</TimelineItem>
</Timeline>
</div>
<Modal v-model="showInfo" title="处理信息">
<Form :model="detailForm" :label-width="5" ref="formValidate">
<Row>
<FormItem label>
<span style="float:left">处理结果&nbsp;</span>
{{detailForm.remark}}
</FormItem>
</Row>
<Row>
<FormItem label>
<Col span="11">
<span style="float:left">处理人&nbsp;</span>
{{detailForm.actionName}}
</Col>
<Col span="13">
<span style="float:left">处理时间&nbsp;</span>
{{detailForm.creationTime}}
</Col>
<Col span="24">
<span style="float:left">工时&nbsp;</span>
{{detailForm.workHours}}
</Col>
</FormItem>
</Row>
</Form>
<div slot="footer">
<Button @click="showInfo=false">关闭</Button>
</div>
<Form :model="detailForm" :label-width="5" ref="formValidate">
<Row>
<FormItem label>
<span style="float:left">处理结果&nbsp;</span>
{{detailForm.remark}}
</FormItem>
</Row>
<Row>
<FormItem label>
<Col span="11">
<span style="float:left">处理人&nbsp;</span>
{{detailForm.actionName}}
</Col>
<Col span="13">
<span style="float:left">处理时间&nbsp;</span>
{{detailForm.creationTime}}
</Col>
<Col span="24">
<span style="float:left">工时&nbsp;</span>
{{detailForm.workHours}}
</Col>
</FormItem>
</Row>
</Form>
<div slot="footer">
<Button @click="showInfo=false">关闭</Button>
</div>
</Modal>
</div>
</div>
</template>
<script>
export default {
name: 'detail',
components: {},
data() {
return {
showInfo: false,
detailForm: {
remark: '',
actionName: '',
creationTime:'',
workHours: 0
},
divHeight: '200px',
parms: {
app: 'bug',
eid: null,
name: ''
},
postUrl:
fileUrl + '/?token=Bearer ' + window.sessionStorage.getItem('token'),
downUrl: fileUrlDown,
fileUrlPath: '',
bugForm: {
id: null,
title: '',
pagePath: '',
content: '',
imgPaths: [],
level: 1,
createor: '',
statusNew: null,
time: 1,
remark: ''
},
timeLineList: [],
nameList: []
}
},
computed: {},
methods: {
detailInfo(value) {
this.nameList = []
this.parms.eid = value.id
this.$http.bug.get({ id: value.id }).then((res) => {
if (res.result) {
this.bugForm = res.result
//this.bugForm.statusNew=res.result.level
name: 'detail',
components: {},
data() {
return {
showInfo: false,
detailForm: {
remark: '',
actionName: '',
creationTime: '',
workHours: 0
},
divHeight: '200px',
parms: {
app: 'bug',
eid: null,
name: ''
},
postUrl: fileUrl + '/?token=Bearer ' + window.sessionStorage.getItem('token'),
downUrl: fileUrlDown,
fileUrlPath: '',
bugForm: {
id: null,
title: '',
pagePath: '',
content: '',
imgPaths: [],
level: 1,
createor: '',
statusNew: null,
time: 1,
remark: ''
},
timeLineList: [],
nameList: []
}
})
},
computed: {},
methods: {
detailInfo(value) {
this.nameList = []
this.parms.eid = value.id
this.$http.bug.get({
id: value.id
}).then((res) => {
if (res.result) {
this.bugForm = res.result
//this.bugForm.statusNew=res.result.level
}
})
this.$refs.refFile.intFiles()
this.$refs.refFile.intFiles()
let id = value.id
if (id != null) {
//增加确定
this.$http.bug.getallaction({ id: id }).then((res) => {
if (res.result) {
this.timeLineLista = []
this.timeLineList = res.result
} else {
this.$Message.error('操作失败!')
}
this.modalDetail = false
})
} else {
this.$Message.error('操作失败!')
}
},
//新增或修改返回数据
addBugInfo() {
return this.bugForm
},
downFile(checked, name) {
this.fileUrlPath = this.downUrl + '/' + name
},
searchInfo(value) {
this.showInfo = true
this.detailForm = {
remark: value.remark,
actionName: value.actionName,
creationTime:value.creationTime,
workHours: value.workHours
}
let id = value.id
if (id != null) {
//增加确定
this.$http.bug.getallaction({
id: id
}).then((res) => {
if (res.result) {
this.timeLineLista = []
this.timeLineList = res.result
} else {
this.$Message.error('操作失败!')
}
this.modalDetail = false
})
} else {
this.$Message.error('操作失败!')
}
},
//新增或修改返回数据
addBugInfo() {
return this.bugForm
},
downFile(checked, name) {
this.fileUrlPath = this.downUrl + '/' + name
},
searchInfo(value) {
this.showInfo = true
this.detailForm = {
remark: value.remark,
actionName: value.actionName,
creationTime: value.creationTime,
workHours: value.workHours
}
},
l(key) {
key = 'bug' + '.' + key
return this.$t(key)
}
},
l(key) {
key = 'bug' + '.' + key
return this.$t(key)
}
},
created() {
this.divHeight = window.innerHeight - 150 + 'px'
},
mounted() {
window.onresize = () => {
return (() => {
created() {
this.divHeight = window.innerHeight - 150 + 'px'
})()
},
mounted() {
window.onresize = () => {
return (() => {
this.divHeight = window.innerHeight - 150 + 'px'
})()
}
}
}
}
</script>
<style scoped>
.time {
font-size: 14px;
font-weight: bold;
font-size: 14px;
font-weight: bold;
}
.content {
padding-left: 5px;
padding-left: 5px;
}
.rightDiv {
width: 18%;
float: left;
padding-left: 50px;
overflow: auto;
width: 18%;
float: left;
padding-left: 50px;
}
</style>
\ No newline at end of file
</style>
......@@ -28,6 +28,6 @@ export default {
return Api.post(`${workflowUrl}/instance/terminate`, params);
},
listTable(params){
return Api.post(`${systemUrl}/custompropertydefinition/list`,params); //物料扩展属性
return Api.post(`${material}/custompropertydefinition/list`,params); //物料扩展属性
},
}
\ No newline at end of file
<template>
<div class="aps-r">
<DataGrid
:columns="columns"
ref="grid"
:batch="false"
:type="typeInfo"
:span="6"
:lazy="true"
:conditions="easySearch"
:action="action"
:gutter="40"
>
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input
placeholder="请输入订单编号/产品名称/图号"
v-model="easySearch.keys.value"
v-width="260"
clearable
/>
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template>
<template slot="card" slot-scope="{row}">
<div
class="body"
@click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status,row.mesCode,row.productName,row.drawnNumber)"
>
<Row class="title-i">
<Col :span="10" class="order-code">
<Ellipsis :text="row.productName" :lines="1" tooltip transfer />
</Col>
<Col :span="10" class="order-code">
<Ellipsis :text="row.mesCode" :lines="1" tooltip transfer />
</Col>
<Col :span="4">
<div class="statuBg" :style="tdStyle(row.status)"></div>
<div class="boxTitle">
<div class="text">
<state
code="taskList.status"
ref="state"
:value="row.status"
type="text"
:color="false"
></state>
</div>
</div>
</Col>
</Row>
<div class="panel-text">
<Row>
<Col span="8">
<div class="img-i">
<img :src="downUrl +row.productUrl" v-if="row.productUrl" />
<img src="@/assets/imgicon/chan_Pin.png" v-else width="100%" height="100%" />
</div>
<!-- <img
<div class="aps-r">
<DataGrid :columns="columns" ref="grid" :batch="false" :type="typeInfo" :span="6" :lazy="true" :conditions="easySearch" :action="action" :gutter="40">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入订单编号/产品名称/图号" v-model="easySearch.keys.value" v-width="260" clearable />
</FormItem>
<!--
<FormItem>
<Dictionary code="taskList.status" placeholder="请选择工单状态" :multiple="true" v-model="easySearch.status.value"></Dictionary>
</FormItem>
-->
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template>
<template slot="card" slot-scope="{row}">
<div class="body" @click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status,row.mesCode,row.productName,row.drawnNumber)">
<Row class="title-i">
<Col :span="10" class="order-code">
<Ellipsis :text="row.productName" :lines="1" tooltip transfer />
</Col>
<Col :span="10" class="order-code">
<Ellipsis :text="row.mesCode" :lines="1" tooltip transfer />
</Col>
<Col :span="4">
<div class="statuBg" :style="tdStyle(row.status)"></div>
<div class="boxTitle">
<div class="text">
<state code="taskList.status" ref="state" :value="row.status" type="text" :color="false"></state>
</div>
</div>
</Col>
</Row>
<div class="panel-text">
<Row>
<Col span="8">
<div class="img-i">
<img :src="downUrl +row.productUrl" v-if="row.productUrl" />
<img src="@/assets/imgicon/chan_Pin.png" v-else width="100%" height="100%" />
</div>
<!-- <img
:src="getUrl(row.productUrl)"
width="120"
height="120"
......@@ -74,380 +55,371 @@
style="border:#cacbd0 dashed 1px"
onerror="this.src='/imgicon/noPic_product.png';"
/>-->
</Col>
<Col span="16" class="row">
<p>{{l("beginTime")}}{{row.beginTime}}</p>
<p>
<span v-if="getStatus(row.status)">{{l("planEndTime")}}</span>
<span v-else>{{l("endTime")}}</span>
{{row.endTime}}
</p>
<p v-if="getStatus(row.status)&&getTimes(row.endTime)>0">
剩余时间:
<OutputTime :value="getTimes(row.endTime)" style="display:inline"></OutputTime>
</p>
<p>{{l("quantity")}}{{row.quantity}}</p>
</Col>
</Row>
<Row class="rowBottom">
<Col span="14">{{l("drawnNumber")}}{{row.drawnNumber}}</Col>
<Col span="10" class="tr">
<Icon
type="md-alert"
size="18"
color="#FFA000"
v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0"
/>
<span
style="color:#FFA000"
v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0"
>预警</span>&nbsp;&nbsp;
<Icon
type="md-timer"
size="18"
color="#FE7777"
v-if="getStatus(row.status)&&compareTime(row.endTime)"
/>
<span
style="color:#FE7777"
v-if="getStatus(row.status)&&compareTime(row.endTime)"
>超期</span>
</Col>
</Row>
</div>
</div>
</template>
</Col>
<Col span="16" class="row">
<p>{{l("beginTime")}}{{row.beginTime}}</p>
<p>
<span v-if="getStatus(row.status)">{{l("planEndTime")}}</span>
<span v-else>{{l("endTime")}}</span>
{{row.endTime}}
</p>
<p v-if="getStatus(row.status)&&getTimes(row.endTime)>0">
剩余时间:
<OutputTime :value="getTimes(row.endTime)" style="display:inline"></OutputTime>
</p>
<p>{{l("quantity")}}{{row.quantity}}</p>
</Col>
</Row>
<Row class="rowBottom">
<Col span="14">{{l("drawnNumber")}}{{row.drawnNumber}}</Col>
<Col span="10" class="tr">
<Icon type="md-alert" size="18" color="#FFA000" v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0" />
<span style="color:#FFA000" v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0">预警</span>&nbsp;&nbsp;
<Icon type="md-timer" size="18" color="#FE7777" v-if="getStatus(row.status)&&compareTime(row.endTime)" />
<span style="color:#FE7777" v-if="getStatus(row.status)&&compareTime(row.endTime)">超期</span>
</Col>
</Row>
</div>
</div>
</template>
</DataGrid>
</div>
</div>
</template>
<script>
import Api from "./api";
import Search from "./search";
export default {
name: "starOrder",
components: {
Search,
},
data() {
return {
action: Api.index,
easySearch: {
keys: {
op: "mesCode,productName,drawnNumber",
value: null,
},
},
downUrl: fileUrlDown,
columns: [
{
title: this.l("mesCode"),
key: "mesCode",
width: 240,
align: "left",
name: "starOrder",
components: {
Search,
},
data() {
return {
action: Api.index,
easySearch: {
keys: {
op: "mesCode,productName,drawnNumber",
value: null,
},
// status: {
// op: "In",
// value: [12, 14, 5, 7, -1]
// }
},
downUrl: fileUrlDown,
columns: [{
title: this.l("mesCode"),
key: "mesCode",
width: 240,
align: "left",
},
{
key: "status",
title: this.l("status"),
align: "center",
high: true,
code: "taskList.status",
width: 120,
},
{
key: "productName",
title: this.l("productName"),
align: "left",
high: true,
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
high: true,
},
{
key: "quantity",
title: this.l("quantity"),
align: "right",
width: 120,
high: true,
},
{
key: "beginTime",
title: this.l("beginTime"),
align: "center",
width: 180,
high: true,
},
{
key: "endTime",
title: this.l("endTime"),
align: "center",
width: 180,
high: true,
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h(
"div", {
class: "action",
},
[
h(
"op", {
attrs: {
oprate: "edit",
},
on: {
click: () =>
this.toExecute(
params.row.id,
params.row.orderId,
params.row.executeId,
params.row.routingHeaderId,
params.row.routingDetailId,
params.row.quantity,
params.row.status,
params.row.mesCode,
params.row.productName,
params.row.drawnNumber
),
},
},
"查看"
),
]
);
},
},
],
typeInfo: "card",
iconInfo: "md-apps",
titleInfo: "卡片模式",
nowTime: new Date().getTime(), //页面当前打开时间
};
},
created() {
let oldStr = localStorage.getItem("admin");
let userlist = this.$store.getters.getUser(2);
},
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.search();
},
methods: {
search() {
this.$refs.grid.reload(this.easySearch);
},
{
key: "status",
title: this.l("status"),
align: "center",
high: true,
code: "taskList.status",
width: 120,
toExecute(
id,
orderId,
executeId,
headid,
routingDetailId,
quantity,
status,
mesCode,
productName,
drawnNumber
) {
//跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({
path: "/produce/execute",
query: {
id: id, //工单ID
orderId: orderId, //订单id
executeId: executeId, //订单执行表id
headid: headid, //工艺规程id
routid: routingDetailId, //工序ID
quantity: quantity, //派工数量
dispatchStatus: status,
mesCode: mesCode,
productName: productName,
drawnNumber: drawnNumber,
},
});
},
{
key: "productName",
title: this.l("productName"),
align: "left",
high: true,
tdStyle(val) {
//动态根据状态值加载状态值对应的颜色
let temDic = this.$store.getters.dictionaryByKey("taskList.status");
let temColor = "#666";
temDic.forEach((data) => {
if (Number(data.code) == val) {
temColor = data.color;
}
});
var style = {};
style["border-top"] = " solid 38px " + temColor;
return style;
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
high: true,
changeShwo() {
//显示模式切换
if (this.typeInfo == "card") {
this.typeInfo = "table";
this.iconInfo = "md-list";
this.titleInfo = "列表模式";
} else {
this.typeInfo = "card";
this.iconInfo = "md-apps";
this.titleInfo = "卡片模式";
}
},
{
key: "quantity",
title: this.l("quantity"),
align: "right",
width: 120,
high: true,
compareTime(dateStart) {
//比较当前时间和计划完成时间
let planEndTime = new Date(dateStart).getTime();
let res = true;
if (this.nowTime - planEndTime > 0) {
res = true;
} else {
res = false;
}
return res;
},
{
key: "beginTime",
title: this.l("beginTime"),
align: "center",
width: 180,
high: true,
getTimes(dateStart) {
//返回计划完成时间和当前时间的差值
let planEndTime = new Date(dateStart).getTime();
let res = 0;
if (this.nowTime - planEndTime > 0) {
res = 0;
} else {
res = (this.nowTime - planEndTime) / 1000;
}
return res;
},
{
key: "endTime",
title: this.l("endTime"),
align: "center",
width: 180,
high: true,
getStatus(status) {
//根据状态返回未开工、执行中、暂停状态的bool值
let res = true;
if (status == 12 || status == 14 || status == 5) {
res = true;
} else {
res = false;
}
return res;
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h(
"div",
{
class: "action",
},
[
h(
"op",
{
attrs: {
oprate: "edit",
},
on: {
click: () =>
this.toExecute(
params.row.id,
params.row.orderId,
params.row.executeId,
params.row.routingHeaderId,
params.row.routingDetailId,
params.row.quantity,
params.row.status,
params.row.mesCode,
params.row.productName,
params.row.drawnNumber
),
},
},
"查看"
),
]
);
},
getUrl(url) {
//返回img需要显示的src值
let tempUrl = "";
if (url && url.length > 0) {
tempUrl = this.downUrl + url;
} else {
tempUrl = iconImg + "noPic_product.png";
}
return tempUrl;
},
],
typeInfo: "card",
iconInfo: "md-apps",
titleInfo: "卡片模式",
nowTime: new Date().getTime(), //页面当前打开时间
};
},
created() {
let oldStr = localStorage.getItem("admin");
let userlist = this.$store.getters.getUser(2);
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.search();
},
methods: {
search() {
this.$refs.grid.reload(this.easySearch);
},
toExecute(
id,
orderId,
executeId,
headid,
routingDetailId,
quantity,
status,
mesCode,
productName,
drawnNumber
) {
//跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({
path: "/produce/execute",
query: {
id: id, //工单ID
orderId: orderId, //订单id
executeId: executeId, //订单执行表id
headid: headid, //工艺规程id
routid: routingDetailId, //工序ID
quantity: quantity, //派工数量
dispatchStatus: status,
mesCode: mesCode,
productName: productName,
drawnNumber: drawnNumber,
l(key) {
let vkey = "order_list" + "." + key;
return this.$t(vkey) || key;
},
});
},
tdStyle(val) {
//动态根据状态值加载状态值对应的颜色
let temDic = this.$store.getters.dictionaryByKey("taskList.status");
let temColor = "#666";
temDic.forEach((data) => {
if (Number(data.code) == val) {
temColor = data.color;
}
});
var style = {};
style["border-top"] = " solid 38px " + temColor;
return style;
},
changeShwo() {
//显示模式切换
if (this.typeInfo == "card") {
this.typeInfo = "table";
this.iconInfo = "md-list";
this.titleInfo = "列表模式";
} else {
this.typeInfo = "card";
this.iconInfo = "md-apps";
this.titleInfo = "卡片模式";
}
},
compareTime(dateStart) {
//比较当前时间和计划完成时间
let planEndTime = new Date(dateStart).getTime();
let res = true;
if (this.nowTime - planEndTime > 0) {
res = true;
} else {
res = false;
}
return res;
},
getTimes(dateStart) {
//返回计划完成时间和当前时间的差值
let planEndTime = new Date(dateStart).getTime();
let res = 0;
if (this.nowTime - planEndTime > 0) {
res = 0;
} else {
res = (this.nowTime - planEndTime) / 1000;
}
return res;
},
getStatus(status) {
//根据状态返回未开工、执行中、暂停状态的bool值
let res = true;
if (status == 12 || status == 14 || status == 5) {
res = true;
} else {
res = false;
}
return res;
},
getUrl(url) {
//返回img需要显示的src值
let tempUrl = "";
if (url && url.length > 0) {
tempUrl = this.downUrl + url;
} else {
tempUrl = iconImg + "noPic_product.png";
}
return tempUrl;
},
l(key) {
let vkey = "order_list" + "." + key;
return this.$t(vkey) || key;
},
},
};
</script>
<style lang="less">
.aps-r {
// width: 100%;
// height: 100%;
// overflow: auto;
// padding: 15px 0 15px 15px;
height: calc(100vh - 110px);
// width: 100%;
// height: 100%;
// overflow: auto;
// padding: 15px 0 15px 15px;
height: calc(100vh - 110px);
.body {
background: white;
border-radius: 4px 0 4px 4px;
border: #cacbd0 solid 1px;
margin-bottom: 30px;
.body {
background: white;
border-radius: 4px 0 4px 4px;
border: #cacbd0 solid 1px;
margin-bottom: 30px;
.title-i {
padding: 0 0 0 8px;
height: 38px;
line-height: 38px;
color: #2680eb;
font-size: 14px;
font-weight: bold;
border-bottom: #cacbd0 dotted 1px;
.title-i {
padding: 0 0 0 8px;
height: 38px;
line-height: 38px;
color: #2680eb;
font-size: 14px;
font-weight: bold;
border-bottom: #cacbd0 dotted 1px;
.btn-click {
text-align: right;
.btn-click {
text-align: right;
a {
color: #fff;
}
a {
color: #fff;
}
a:hover {
color: #249e91;
a:hover {
color: #249e91;
}
}
}
}
}
.panel-text {
padding: 5px 8px;
.img-i {
width: 120px;
height: 120px;
overflow: hidden;
border: #cacbd0 dashed 1px;
img {
// width: 90px;
// height: 90px;
}
}
.row {
color: #666666;
padding-left: 10px;
.panel-text {
padding: 5px 8px;
.img-i {
width: 120px;
height: 120px;
overflow: hidden;
border: #cacbd0 dashed 1px;
img {
// width: 90px;
// height: 90px;
}
}
p {
line-height: 30px;
.row {
color: #666666;
padding-left: 10px;
p {
line-height: 30px;
}
}
}
}
}
}
.body:hover {
cursor: pointer;
box-shadow: 0 0 10px #888888;
}
.body:hover {
cursor: pointer;
box-shadow: 0 0 10px #888888;
}
}
.statuBg {
height: 0px;
width: 0;
border-left: solid 50px transparent;
float: right;
margin-right: -1px;
height: 0px;
width: 0;
border-left: solid 50px transparent;
float: right;
margin-right: -1px;
}
.boxTitle {
color: white;
float: right;
margin-top: -42px;
/* Rotate div */
transform: rotate(37deg);
-ms-transform: rotate(37deg);
/* Internet Explorer */
-moz-transform: rotate(37deg);
/* Firefox */
-webkit-transform: rotate(37deg);
/* Safari 和 Chrome */
-o-transform: rotate(37deg);
color: white;
float: right;
margin-top: -42px;
/* Rotate div */
transform: rotate(37deg);
-ms-transform: rotate(37deg);
/* Internet Explorer */
-moz-transform: rotate(37deg);
/* Firefox */
-webkit-transform: rotate(37deg);
/* Safari 和 Chrome */
-o-transform: rotate(37deg);
/* Opera */
.text {
font-size: 8px;
font-weight: normal;
}
/* Opera */
.text {
font-size: 8px;
font-weight: normal;
}
}
.rowBottom .ivu-col-span-10 {
height: 24px;
padding-right: 10px;
height: 24px;
padding-right: 10px;
}
</style>
<template>
<div class="end-issued">
<DataGrid
:columns="columns"
ref="grid"
:action="action"
:conditions="easySearch"
:high="false"
:height="tdHeight"
></DataGrid>
<Modal
v-model="detailModal"
title="查看合格证"
@on-cancel="reload"
footer-hide
width="1000"
:mask-closable="false"
>
<Detail @on-close="cancel" @on-ok="addOk" :eid="curId" ref="listDetail" />
<div class="end-issued">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :high="false" :height="tdHeight"></DataGrid>
<Modal v-model="detailModal" title="查看合格证" @on-cancel="reload" footer-hide width="1000" :mask-closable="false">
<Detail @on-close="cancel" @on-ok="addOk" :eid="curId" ref="listDetail" />
</Modal>
</div>
</div>
</template>
<script>
import Api from "../api";
import Detail from "./detail";
export default {
name: "index",
components: {
Detail
},
data() {
return {
action: Api.index, // Api.indexPaged
detailModal: false,
curId: 0,
modalInfo: false,
tdHeight: "",
rules: {
approveUser: [{ required: true, message: "必填", trigger: "blur" }]
},
columns: [
{ key: "id", title: this.l("id"), hide: true, align: "left" },
// {
// type: 'selection',
// width: 60,
// align: 'center'
// },
{
key: "mesCode",
title: this.l("mesCode"),
align: "left",
easy: true,
high: true
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
easy: true,
high: true
},
{
key: "quantity",
title: this.l("quantity"),
align: "left",
easy: true,
high: true
},
name: "index",
components: {
Detail
},
data() {
return {
action: Api.index, // Api.indexPaged
detailModal: false,
curId: 0,
modalInfo: false,
tdHeight: "",
rules: {
approveUser: [{
required: true,
message: "必填",
trigger: "blur"
}]
},
columns: [{
key: "id",
title: this.l("id"),
hide: true,
align: "left"
},
// {
// type: 'selection',
// width: 60,
// align: 'center'
// },
{
key: "mesCode",
title: this.l("mesCode"),
align: "left",
easy: true,
high: true
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
easy: true,
high: true
},
{
key: "quantity",
title: this.l("quantity"),
align: "left",
easy: true,
high: true
},
{
key: "qualifiedQuantity",
title: this.l("qualifiedQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "uncertificateQuantity",
title: this.l("uncertificateQuantity"),
align: "left",
easy: true,
high: true
{
key: "qualifiedQuantity",
title: this.l("qualifiedQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "uncertificateQuantity",
title: this.l("uncertificateQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "actualFinishDate",
title: this.l("actualFinishDate"),
align: "left",
easy: true,
high: true,
render: (h, params) => {
return h(
"span",
params.row.actualFinishDate == "0001-01-01 00:00:00" ?
"" :
params.row.actualFinishDate
);
}
},
{
key: "productingPreparationPeople",
title: this.l("productingPreparationPeople"),
align: "left",
easy: true,
high: true
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
},
{
title: "操作",
key: "action",
render: (h, params) => {
return h("div", {
class: "action"
}, [
h(
"op", {
attrs: {
oprate: "detail",
title: "查看合格证"
},
on: {
click: () => this.detail(params.row.id)
}
},
"查看合格证"
)
]);
}
}
],
easySearch: {
keys: {
op: "mesCode",
value: "",
default: true
},
type: {
op: "Equal",
value: 2
}
}
};
},
mounted() {},
created() {
this.tdHeight = window.innerHeight - 250;
},
methods: {
addOk() {
// this.$refs.grid.load()
this.detailModal = false;
this.curId = 0;
},
{
key: "actualFinishDate",
title: this.l("actualFinishDate"),
align: "left",
easy: true,
high: true,
render: (h, params) => {
return h(
"span",
params.row.actualFinishDate == "0001-01-01 00:00:00"
? ""
: params.row.actualFinishDate
);
}
cancel() {
this.curId = 0;
this.detailModal = false;
},
{
key: "productingPreparationPeople",
title: this.l("productingPreparationPeople"),
align: "left",
easy: true,
high: true
reload() {
if (this.$refs.listDetail.checkboxList.length == 0) {
this.$refs.grid.load();
}
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
detail(id) {
this.detailModal = true;
this.curId = id;
},
{
title: "操作",
key: "id",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: {
oprate: "detail",title: "查看合格证"
},
on: { click: () => this.detail(params.row.id) }
},
"查看合格证"
)
]);
}
// 列表title
l(key) {
let vkey = "waitOpened" + "." + key;
return this.$t(vkey) || key;
}
],
easySearch: {
keys: { op: "mesCode", value: "", default: true },
type: { op: "Equal", value: 2 }
}
};
},
mounted() {},
created() {
this.tdHeight = window.innerHeight - 250;
},
methods: {
addOk() {
// this.$refs.grid.load()
this.detailModal = false;
this.curId = 0;
},
cancel() {
this.curId = 0;
this.detailModal = false;
},
reload() {
if (this.$refs.listDetail.checkboxList.length == 0) {
this.$refs.grid.load();
}
},
detail(id) {
this.detailModal = true;
this.curId = id;
},
// 列表title
l(key) {
let vkey = "waitOpened" + "." + key;
return this.$t(vkey) || key;
}
}
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
</style>
<template>
<div class="wait-opened">
<DataGrid
:columns="columns"
ref="grid"
:action="action"
:conditions="easySearch"
:high="false"
:height="tdHeight"
></DataGrid>
<div class="wait-opened">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :high="false" :height="tdHeight"></DataGrid>
<Modal v-model="addModal" title="开合格证" fullscreen footer-hide :mask-closable="false">
<Add @on-close="cancel" @on-ok="addOk" :eid="curId" ref="addFile" />
<Add @on-close="cancel" @on-ok="addOk" :eid="curId" ref="addFile" />
</Modal>
</div>
</div>
</template>
<script>
import Api from "../api";
import Add from "./add";
export default {
name: "index",
components: {
Add
},
data() {
return {
action: Api.index,
checkLists: [],
addModal: false,
curId: null,
tdHeight: "",
columns: [
{ key: "id", title: this.l("id"), hide: true, align: "left" },
{
key: "mesCode",
title: this.l("mesCode"),
align: "left",
easy: true,
high: true
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
easy: true,
high: true
},
{
key: "quantity",
title: this.l("quantity"),
align: "left",
easy: true,
high: true
},
name: "index",
components: {
Add
},
data() {
return {
action: Api.index,
checkLists: [],
addModal: false,
curId: null,
tdHeight: "",
columns: [{
key: "id",
title: this.l("id"),
hide: true,
align: "left"
},
{
key: "mesCode",
title: this.l("mesCode"),
align: "left",
easy: true,
high: true
},
{
key: "productName",
title: this.l("productName"),
align: "left",
easy: true,
high: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "left",
easy: true,
high: true
},
{
key: "quantity",
title: this.l("quantity"),
align: "left",
easy: true,
high: true
},
{
key: "qualifiedQuantity",
title: this.l("qualifiedQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "uncertificateQuantity",
title: this.l("uncertificateQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "actualFinishDate",
title: this.l("actualFinishDate"),
align: "left",
easy: true,
high: true,
width: 180,
render: (h, params) => {
return h(
"span",
params.row.actualFinishDate == "0001-01-01 00:00:00"
? ""
: params.row.actualFinishDate
);
}
},
{
key: "productingPreparationPeople",
title: this.l("productingPreparationPeople"),
align: "left",
easy: true,
high: true
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
},
{
title: "操作",
key: "id",
// width: 250,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: {
oprate: "add"
},
on: { click: () => this.add(params.row) }
key: "qualifiedQuantity",
title: this.l("qualifiedQuantity"),
align: "left",
easy: true,
high: true
},
"开合格证"
)
]);
}
}
],
easySearch: {
keys: { op: "mesCode", value: null, default: true },
type: { op: "Equal", value: 1 }
}
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {},
created() {
this.tdHeight = window.innerHeight - 250;
},
methods: {
addOk() {
this.$refs.grid.load();
this.addModal = false;
this.curId = 0;
},
cancel() {
this.curId = 0;
this.addModal = false;
{
key: "uncertificateQuantity",
title: this.l("uncertificateQuantity"),
align: "left",
easy: true,
high: true
},
{
key: "actualFinishDate",
title: this.l("actualFinishDate"),
align: "left",
easy: true,
high: true,
width: 180,
render: (h, params) => {
return h(
"span",
params.row.actualFinishDate == "0001-01-01 00:00:00" ?
"" :
params.row.actualFinishDate
);
}
},
{
key: "productingPreparationPeople",
title: this.l("productingPreparationPeople"),
align: "left",
easy: true,
high: true
},
{
key: "status",
title: this.l("status"),
align: "left",
easy: true,
high: true,
code: "plan.order.status"
},
{
title: "操作",
key: "action",
// width: 250,
align: "center",
render: (h, params) => {
return h("div", {
class: "action"
}, [
h(
"op", {
attrs: {
oprate: "add"
},
on: {
click: () => this.add(params.row)
}
},
"开合格证"
)
]);
}
}
],
easySearch: {
keys: {
op: "mesCode",
value: null,
default: true
},
type: {
op: "Equal",
value: 1
}
}
};
},
reload() {
this.$refs.grid.load();
async fetch({
store,
params
}) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
add(row) {
this.addModal = true;
this.curId = row.id;
this.$refs.addFile.entity.productName = row.productName;
this.$refs.addFile.entity.productStatus = row.status;
this.$refs.addFile.entity.productCode = row.drawnNumber;
mounted() {},
created() {
this.tdHeight = window.innerHeight - 250;
},
// 列表title
l(key) {
let vkey = "waitOpened" + "." + key;
return this.$t(vkey) || key;
methods: {
addOk() {
this.$refs.grid.load();
this.addModal = false;
this.curId = 0;
},
cancel() {
this.curId = 0;
this.addModal = false;
},
reload() {
this.$refs.grid.load();
},
add(row) {
this.addModal = true;
this.curId = row.id;
this.$refs.addFile.entity.productName = row.productName;
this.$refs.addFile.entity.productStatus = row.status;
this.$refs.addFile.entity.productCode = row.drawnNumber;
},
// 列表title
l(key) {
let vkey = "waitOpened" + "." + key;
return this.$t(vkey) || key;
}
}
}
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
</style>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Row>
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('classId')" prop="classId">
<InputNumber v-model="entity.classId"></InputNumber>
</FormItem>
......@@ -11,56 +11,56 @@
<Input v-model="entity.unicode"></Input>
</FormItem>
</Col>-->
<Col :span="8">
<Col :span="8">
<!-- <FormItem v-if="title=='新增'" :label="l('code')" prop="code">
<Input v-model="entity.code"></Input>
</FormItem> v-else-if="title=='克隆'"-->
<FormItem :label="l('code')" prop="code">
<Input disabled v-model="entity.code"></Input>
<Input disabled v-model="entity.code"></Input>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('name')" prop="name">
<Input v-model="entity.name"></Input>
<Input v-model="entity.name"></Input>
</FormItem>
</Col>
</Col>
<Col :span="8">
<Col :span="8">
<FormItem :label="l('routingType')" prop="routingType">
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('phase')" prop="phase">
<Dictionary code="Process.Routing.phase" v-model="entity.phase"></Dictionary>
<Dictionary code="Process.Routing.phase" v-model="entity.phase"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('productName')" prop="productId">
<ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect>
<ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('drawingNo')" prop="drawingNo">
<Input v-model="entity.drawingNo" disabled></Input>
<Input v-model="entity.drawingNo" disabled></Input>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('version')" prop="versionid">
<Dictionary code="Process.Routing.version" v-model="entity.versionid"></Dictionary>
<Dictionary code="Process.Routing.version" v-model="entity.versionid"></Dictionary>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('departmentName')" prop="departmentId">
<departmentSelect v-model="entity.departmentId" :type="3" @on-change="departChange"></departmentSelect>
<departmentSelect v-model="entity.departmentId" :type="3" @on-change="departChange"></departmentSelect>
</FormItem>
</Col>
<Col :span="8">
</Col>
<Col :span="8">
<FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
</FormItem>
</Col>
<!--
</Col>
<!--
<Col :span="8">
<FormItem :label="l('isMain')" prop="isMain">
<Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary>
......@@ -76,13 +76,13 @@
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('upDetailId')" prop="upDetailId">
<InputNumber v-model="entity.upDetailId"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status"></Dictionary>
</FormItem>
......@@ -93,7 +93,7 @@
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('approvalStatusRemark')" prop="approvalStatusRemark">
<Input v-model="entity.approvalStatusRemark"></Input>
</FormItem>
......@@ -114,17 +114,17 @@
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('versionnotes')" prop="versionnotes">
<Input v-model="entity.versionnotes"></Input>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('phase')" prop="phase">
<InputNumber v-model="entity.phase"></InputNumber>
</FormItem>
</Col>-->
<!-- <Col :span="12">
<!-- <Col :span="12">
<FormItem :label="l('versionid')" prop="versionid">
<InputNumber v-model="entity.versionid"></InputNumber>
</FormItem>
......@@ -135,250 +135,255 @@
</FormItem>
</Col>
-->
<Col :span="24">
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<i-quill v-model="entity.remark" :height="300" border v-paste="handleImg" />
<i-quill v-model="entity.remark" :height="300" border v-paste="handleImg" />
</FormItem>
</Col>
</Col>
<Col :span="24">
<Col :span="24">
<FormItem label="多媒体附件" prop="files">
<files ref="refFile" :parms="parms" fileFormat />
<files ref="refFile" :parms="parms" fileFormat />
</FormItem>
</Col>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" v-noClick>保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
<Button type="primary" @click="handleSubmit" v-noClick>保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</Form>
</template>
<script>
import Api from "./api";
import ApiWorkflow from "../workflow/process/api";
import iQuill from "@/components/quill";
export default {
name: "Add",
components: {
iQuill,
// VueUeditorWrap
},
data() {
return {
entity: {
classId: null,
unicode: "",
name: "",
code: "",
productId: null,
productName: "",
productBomId: null,
version: "",
author: null,
departmentId: null,
departmentName: "",
isMain: 1,
upId: null,
upDetailId: null,
routingType: null,
status: 0,
approvalStatus: 4,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
isEffect: 1,
versionnotes: "",
phase: null,
versionid: null,
isSendPpm: 1,
fileId: "",
},
rules: {
name: [
{
required: true,
message: "必填",
trigger: "blur",
},
],
code: [
{
required: true,
message: "必填",
trigger: "blur",
},
],
routingType: [
{
required: true,
message: "请选择工艺类型",
trigger: "change",
type: "number",
},
],
},
parms: {
app: "technology",
eid: null,
name: "",
field: "",
},
};
},
props: {
v: Object,
eid: Number,
title: String,
},
mounted() {
this.parms.eid = this.$u.guid();
this.$refs.refFile.intFiles();
if (this.eid > 0) {
this.load(this.eid);
} else {
this.getCodNumber();
}
},
methods: {
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == "克隆") {
this.$Message.success("克隆");
this.getcloneData();
} else {
if (this.$refs.refFile.nameList.length > 0) {
this.entity.fileId = this.parms.eid;
} else {
this.entity.fileId = "";
}
ApiWorkflow.getbyid({
id: "2085025d-9c38-4834-846a-8f9d2f4c8553",
})
.then((res) => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.entity.approvalStatus = 4;
} else {
this.entity.approvalStatus = 1;
}
Api.create(this.entity)
.then((r) => {
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch((err) => {
this.$Message.error("保存失败");
console.warn(err);
});
}
})
.catch((err) => {
this.$Message.error("操作失败");
console.warn(err);
});
}
}
});
},
// 克隆工艺
getcloneData() {
let parmese = {
headerId: this.eid,
code: this.entity.code,
};
Api.getCloneHeader(parmese)
.then((r) => {
if (r.success) {
this.$Message.success("克隆成功");
this.$emit("on-ok");
} else {
this.$Message.error("克隆失败");
}
})
.catch((err) => {
this.$Message.error("克隆失败");
console.warn(err);
});
name: "Add",
components: {
iQuill,
// VueUeditorWrap
},
handleClose() {
this.$emit("on-close");
},
handleImg(e) {
console.warn(e);
let file = null;
if (
e.clipboardData &&
e.clipboardData.items[0] &&
e.clipboardData.items[0].type &&
e.clipboardData.items[0].type.indexOf("image") > -1
) {
//这里就是判断是否有粘贴进来的文件且文件为图片格式
file = e.clipboardData.items[0].getAsFile();
let reader = new FileReader();
reader.readAsDataURL(file);
setTimeout(() => {
var img = '<img src="' + reader.result + '" alt=""/>';
this.entity.remark += img;
}, 1000);
// new R
}
data() {
return {
entity: {
classId: null,
unicode: "",
name: "",
code: "",
productId: null,
productName: "",
productBomId: null,
version: "",
author: null,
departmentId: null,
departmentName: "",
isMain: 1,
upId: null,
upDetailId: null,
routingType: null,
status: 0,
approvalStatus: 4,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
isEffect: 1,
versionnotes: "",
phase: null,
versionid: null,
isSendPpm: 1,
fileId: "",
},
rules: {
name: [{
required: true,
message: "必填",
trigger: "blur",
}, ],
code: [{
required: true,
message: "必填",
trigger: "blur",
}, ],
routingType: [{
required: true,
message: "请选择工艺类型",
trigger: "change",
type: "number",
}, ],
},
parms: {
app: "technology",
eid: null,
name: "",
field: "",
},
};
},
load(v) {
Api.get({
id: v,
}).then((r) => {
this.entity = r.result;
this.entity.isEffect = parseInt(r.result.isEffect);
this.entity.id = 0;
});
this.getCodNumber();
props: {
v: Object,
eid: Number,
title: String,
},
getCodNumber() {
Api.getCodeNumber({
code: "GY",
count: "1",
}).then((r) => {
if (r.success) {
this.entity.code = r.result[0];
mounted() {
this.parms.eid = this.$u.guid();
this.$refs.refFile.intFiles();
if (this.eid > 0) {
this.load(this.eid);
} else {
this.$Message.error("生成编号失败");
this.getCodNumber();
}
});
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
},
proChange(v, items) {
this.entity.productName = items.productName;
this.entity.drawingNo = items.drawingNo;
this.entity.productBomId = items.bomId;
},
departChange(v, items) {
this.entity.departmentName = items.name;
},
},
watch: {
v() {
this.entity = this.$u.clone(this.v);
methods: {
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
if (this.title == "克隆") {
this.$Message.success("克隆");
this.getcloneData();
} else {
if (this.$refs.refFile.nameList.length > 0) {
this.entity.fileId = this.parms.eid;
} else {
this.entity.fileId = "";
}
ApiWorkflow.getbyid({
id: "2085025d-9c38-4834-846a-8f9d2f4c8553",
})
.then((res) => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.entity.approvalStatus = 4;
} else {
this.entity.approvalStatus = 1;
}
Api.create(this.entity)
.then((r) => {
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
//保存成功后直接打开主页面查看功能
let rowInfo = {
id: null, //????保存成功后需要返回id
code: this.entity.code,
name: this.entity.name,
routingType: this.entity.routingType,
version: this.entity.versionid,
departmentName: this.entity.departmentName,
approvalStatus: this.entity.approvalStatus,
productBomId: this.entity.productBomId
}
// this.$emit("on-goPage", rowInfo)
} else {
this.$Message.error("保存失败");
}
})
.catch((err) => {
this.$Message.error("保存失败");
console.warn(err);
});
}
})
.catch((err) => {
this.$Message.error("操作失败");
console.warn(err);
});
}
}
});
},
// 克隆工艺
getcloneData() {
let parmese = {
headerId: this.eid,
code: this.entity.code,
};
Api.getCloneHeader(parmese)
.then((r) => {
if (r.success) {
this.$Message.success("克隆成功");
this.$emit("on-ok");
} else {
this.$Message.error("克隆失败");
}
})
.catch((err) => {
this.$Message.error("克隆失败");
console.warn(err);
});
},
handleClose() {
this.$emit("on-close");
},
handleImg(e) {
console.warn(e);
let file = null;
if (
e.clipboardData &&
e.clipboardData.items[0] &&
e.clipboardData.items[0].type &&
e.clipboardData.items[0].type.indexOf("image") > -1
) {
//这里就是判断是否有粘贴进来的文件且文件为图片格式
file = e.clipboardData.items[0].getAsFile();
let reader = new FileReader();
reader.readAsDataURL(file);
setTimeout(() => {
var img = '<img src="' + reader.result + '" alt=""/>';
this.entity.remark += img;
}, 1000);
// new R
}
},
load(v) {
Api.get({
id: v,
}).then((r) => {
this.entity = r.result;
this.entity.isEffect = parseInt(r.result.isEffect);
this.entity.id = 0;
});
this.getCodNumber();
},
getCodNumber() {
Api.getCodeNumber({
code: "GY",
count: "1",
}).then((r) => {
if (r.success) {
this.entity.code = r.result[0];
} else {
this.$Message.error("生成编号失败");
}
});
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
},
proChange(v, items) {
this.entity.productName = items.productName;
this.entity.drawingNo = items.drawingNo;
this.entity.productBomId = items.bomId;
},
departChange(v, items) {
this.entity.departmentName = items.name;
},
},
eid(v) {
// console.log("id:",v)
if (v != 0) {
this.load(v);
}
watch: {
v() {
this.entity = this.$u.clone(this.v);
},
eid(v) {
// console.log("id:",v)
if (v != 0) {
this.load(v);
}
},
},
},
};
</script>
......@@ -52,7 +52,7 @@
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1120" footer-hide>
<component :is="detail" :eid="curId" :uid="uId" :title="title" :headid="hid" @on-close="cancel" @on-ok="ok" />
<component :is="detail" :eid="curId" :uid="uId" :title="title" :headid="hid" @on-close="cancel" @on-ok="ok" @on-goPage="view" />
</Modal>
<Modal v-model="documentShow" title="送审" :mask-closable="false" :scrollable="true" ok-text="确定" cancel-text="取消" fullscreen>
<sendAudit ref="sendAudit"></sendAudit>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment