Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周远喜
mes-ui
Commits
dcfd759a
Commit
dcfd759a
authored
Sep 27, 2020
by
仇晓婷
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of
http://git.mes123.com/zhouyx/mes-ui
into product
parents
a89f21ec
406a3cca
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1417 additions
and
1389 deletions
+1417
-1389
dataGrid.vue
components/page/dataGrid.vue
+1
-1
inputIcon.vue
components/page/inputIcon.vue
+69
-58
index.vue
pages/aps/supprotMain/index.vue
+179
-163
detail.vue
pages/bug/component/detail.vue
+203
-193
api.js
pages/handle/api.js
+1
-1
orderlist.vue
pages/produce/orderlist.vue
+372
-400
index.vue
pages/qc/certificate/endIssued/index.vue
+166
-162
index.vue
pages/qc/certificate/waitOpened/index.vue
+162
-152
add.vue
pages/technology/add.vue
+263
-258
index.vue
pages/technology/index.vue
+1
-1
No files found.
components/page/dataGrid.vue
View file @
dcfd759a
...
...
@@ -479,7 +479,7 @@ export default {
this
.
$api
.
post
(
`
${
systemUrl
}
/user/paged`
,
{
conditions
:
[],
pageIndex
:
1
,
pageSize
:
1000
,
pageSize
:
1000
00
,
})
.
then
((
r
)
=>
{
if
(
r
.
success
)
{
...
...
components/page/inputIcon.vue
View file @
dcfd759a
<
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
>
pages/aps/supprotMain/index.vue
View file @
dcfd759a
<
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
>
pages/bug/component/detail.vue
View file @
dcfd759a
<
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'
)
}}
</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"
>
地址
</span>
{{
bugForm
.
pagePath
}}
</FormItem>
</Col>
</Row>
<Row>
<FormItem
label
>
<span
style=
"float:left"
>
内容
</span>
<dl
v-html=
"bugForm.content"
style=
"margin-left:40px;"
></dl>
</FormItem>
</Row>
<Row>
<FormItem
label
>
<span
style=
"float:left"
>
附件
</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'
)
}}
</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"
>
地址
</span>
{{
bugForm
.
pagePath
}}
</FormItem>
</Col>
</Row>
<Row>
<FormItem
label
>
<span
style=
"float:left"
>
内容
</span>
<dl
v-html=
"bugForm.content"
style=
"margin-left:40px;"
></dl>
</FormItem>
</Row>
<Row>
<FormItem
label
>
<span
style=
"float:left"
>
附件
</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"
>
处理结果
</span>
{{
detailForm
.
remark
}}
</FormItem>
</Row>
<Row>
<FormItem
label
>
<Col
span=
"11"
>
<span
style=
"float:left"
>
处理人
</span>
{{
detailForm
.
actionName
}}
</Col>
<Col
span=
"13"
>
<span
style=
"float:left"
>
处理时间
</span>
{{
detailForm
.
creationTime
}}
</Col>
<Col
span=
"24"
>
<span
style=
"float:left"
>
工时
</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"
>
处理结果
</span>
{{
detailForm
.
remark
}}
</FormItem>
</Row>
<Row>
<FormItem
label
>
<Col
span=
"11"
>
<span
style=
"float:left"
>
处理人
</span>
{{
detailForm
.
actionName
}}
</Col>
<Col
span=
"13"
>
<span
style=
"float:left"
>
处理时间
</span>
{{
detailForm
.
creationTime
}}
</Col>
<Col
span=
"24"
>
<span
style=
"float:left"
>
工时
</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
>
pages/handle/api.js
View file @
dcfd759a
...
...
@@ -28,6 +28,6 @@ export default {
return
Api
.
post
(
`
${
workflowUrl
}
/instance/terminate`
,
params
);
},
listTable
(
params
){
return
Api
.
post
(
`
${
systemUr
l
}
/custompropertydefinition/list`
,
params
);
//物料扩展属性
return
Api
.
post
(
`
${
materia
l
}
/custompropertydefinition/list`
,
params
);
//物料扩展属性
},
}
\ No newline at end of file
pages/produce/orderlist.vue
View file @
dcfd759a
<
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>
<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>
<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
>
pages/qc/certificate/endIssued/index.vue
View file @
dcfd759a
<
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
>
pages/qc/certificate/waitOpened/index.vue
View file @
dcfd759a
<
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
>
pages/technology/add.vue
View file @
dcfd759a
<
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
>
pages/technology/index.vue
View file @
dcfd759a
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment