From 68eaf315b64145e487d10e66183d542ee7f94d10 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 05 七月 2022 17:35:33 +0800
Subject: [PATCH] 1.生产管理完成部分功能2.自定义页面打印、二维码图形、水印显示实现了一个demo
---
src/icons/svg/start_time.svg | 2
src/views/scgl/scdd.vue | 87 +-
src/views/scgl/gd.vue | 415 ++++++++++++----
src/icons/svg/report_work.svg | 2
src/main.js | 8
src/views/scgl/sckbg.vue | 653 ++++++++++++++++++++++++++
package.json | 4
src/utils/watermark.js | 65 ++
src/layout/components/TagsView/index.vue | 12
src/views/template.vue | 8
src/views/scgl/gdpg.vue | 188 +++++++
11 files changed, 1,279 insertions(+), 165 deletions(-)
diff --git a/package.json b/package.json
index c938999..d977fbf 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,11 @@
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"postcss-px2rem": "^0.3.0",
+ "qrcode": "^1.5.0",
+ "qrcodejs2": "0.0.2",
"vue": "2.6.10",
+ "vue-easy-print": "0.0.8",
+ "vue-print-nb": "^1.7.5",
"vue-router": "3.0.6",
"vuex": "3.1.0"
},
diff --git a/src/icons/svg/report_work.svg b/src/icons/svg/report_work.svg
new file mode 100644
index 0000000..0e910a7
--- /dev/null
+++ b/src/icons/svg/report_work.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657000819014" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3263" xmlns:xlink="http://www.w3.org/1999/xlink" width="42" height="42"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
+</style></defs><path d="M864 426.64a381.71 381.71 0 0 0-320-232l-0.09-66h159a32 32 0 1 0 0-64H319.57a32 32 0 1 0 0 64h160.32l0.09 66A382.12 382.12 0 0 0 363.3 927.3 382.19 382.19 0 0 0 864 426.64z m-352 466.7c-175.35 0-318-142.65-318-318s142.65-318 318-318 318 142.66 318 318-142.65 318-318 318z" p-id="3264"></path><path d="M635 409.17L534.66 509.94a70 70 0 1 0 44.22 46.29l101.51-101.9A32 32 0 1 0 635 409.17z" p-id="3265"></path></svg>
\ No newline at end of file
diff --git a/src/icons/svg/start_time.svg b/src/icons/svg/start_time.svg
new file mode 100644
index 0000000..b8d79bd
--- /dev/null
+++ b/src/icons/svg/start_time.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657000626353" class="icon" viewBox="0 0 1280 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2623" width="52.5" height="42" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
+</style></defs><path d="M288.191 694.923c-9.489 0-18.978-5.271-23.722-14.761-8.962-18.45-16.869-37.955-23.195-57.46-4.745-13.706 3.163-28.466 16.869-33.211 13.706-4.745 28.466 3.163 33.211 16.869 5.798 16.869 12.652 34.266 20.559 50.08 6.326 13.179 1.054 28.993-11.598 35.319-4.218 2.109-8.434 3.163-12.125 3.163z" fill="#42b983" p-id="2624"></path><path d="M641.913 914.22c-59.041 0-116.501-12.125-170.271-35.846-51.661-23.195-98.051-55.351-137.06-96.996-10.016-10.543-9.489-27.412 1.054-37.428 10.543-10.016 27.412-9.489 37.428 1.054 34.266 36.373 74.329 64.841 119.664 84.873 46.917 21.086 96.996 31.63 148.658 31.63 98.578 0 190.83-38.482 260.942-108.067 69.585-69.585 108.067-162.364 108.067-260.942s-38.482-190.83-108.067-260.942c-69.585-69.057-162.364-107.54-260.415-107.54-98.578 0-190.83 38.482-260.942 108.067-69.585 69.585-108.067 162.364-108.067 260.942 0 14.761-11.598 26.357-26.357 26.357-14.761 0-26.357-11.598-26.357-26.357 0-56.933 11.07-112.284 33.211-163.946 21.086-50.08 51.661-95.415 90.144-133.898s83.818-69.057 133.898-90.144c52.189-22.141 107.012-33.211 163.946-33.211 56.933 0 112.284 11.07 163.946 33.211 50.08 21.086 95.415 51.661 133.898 90.144 38.482 38.482 69.057 83.818 90.144 133.898 22.141 52.189 33.211 107.012 33.211 163.946 0 56.933-11.07 112.284-33.211 163.946-21.086 50.08-51.661 95.415-90.144 133.898-38.482 38.482-83.818 69.057-133.898 90.144-51.661 22.141-106.485 33.211-163.419 33.211z" fill="#42b983" p-id="2625"></path><path d="M521.194 700.194c-4.745 0-8.962-1.054-13.179-3.69-7.907-4.745-13.179-13.179-13.179-22.668V311.68c0-9.489 5.271-17.923 13.179-22.668 8.434-4.745 18.45-4.745 26.357 0L848.03 470.354c7.907 4.745 13.179 13.179 13.179 22.668s-5.271 17.923-13.179 22.668L534.372 697.032c-3.69 2.109-8.434 3.163-13.179 3.163z" fill="#42b983" p-id="2626"></path></svg>
\ No newline at end of file
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index 18d4a2c..12d2bc4 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -16,12 +16,12 @@
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
</router-link>
</scroll-pane>
- <!-- <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">-->
- <!-- <li @click="refreshSelectedTag(selectedTag)">鍒锋柊</li>-->
- <!-- <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">鍏抽棴</li>-->
- <!-- <li @click="closeOthersTags">鍏抽棴鍏朵粬</li>-->
- <!-- <li @click="closeAllTags(selectedTag)">鍏抽棴鎵�鏈�</li>-->
- <!-- </ul>-->
+ <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
+ <li @click="refreshSelectedTag(selectedTag)">鍒锋柊</li>
+ <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">鍏抽棴</li>
+ <li @click="closeOthersTags">鍏抽棴鍏朵粬</li>
+ <li @click="closeAllTags(selectedTag)">鍏抽棴鎵�鏈�</li>
+ </ul>
</div>
</template>
diff --git a/src/main.js b/src/main.js
index 3954377..89f4f2b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -48,6 +48,14 @@
import '../public/static/theme/index.css' /* icofont */
+// 鎵撳嵃
+import Print from 'vue-print-nb'
+Vue.use(Print)
+
+// 姘村嵃
+import watermark from './utils/watermark.js'
+Vue.prototype.$watermark = watermark
+
new Vue({
el: '#app',
router,
diff --git a/src/utils/watermark.js b/src/utils/watermark.js
new file mode 100644
index 0000000..85ba4bb
--- /dev/null
+++ b/src/utils/watermark.js
@@ -0,0 +1,65 @@
+const watermark = {}
+
+const setWatermark = (text, sourceBody) => {
+ const id = Math.random() * 10000 + '-' + Math.random() * 10000 + '/' + Math.random() * 10000
+
+ if (document.getElementById(id) !== null) {
+ document.body.removeChild(document.getElementById(id))
+ }
+
+ const can = document.createElement('canvas')
+ can.width = 100
+ can.height = 100
+
+ const cans = can.getContext('2d')
+ // cans.rotate(0 * Math.PI / 180)
+ // cans.rotate(-20 * Math.PI / 180)
+ cans.font = '16px Vedana'
+ can.fontWeight = 'bolder'
+ cans.fillStyle = 'rgba(0, 0, 0, .5)'
+ cans.textAlign = 'left'
+ cans.textBaseline = 'Middle'
+ cans.fillText(text, can.width / 6, can.height / 2)
+ // cans.fillText(text, can.width/20, can.height)
+
+ const water_div = document.createElement('div')
+ water_div.id = id
+ water_div.style.pointerEvents = 'none'
+ // water_div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
+ water_div.style.background = 'url(' + can.toDataURL('image/png') + ') repeat'
+ if (sourceBody) {
+ water_div.style.width = '100%'
+ water_div.style.height = '100%'
+ sourceBody.appendChild(water_div)
+ } else {
+ // water_div.style.top = '3px'
+ // water_div.style.left = '0px'
+ water_div.style.position = 'fixed'
+ water_div.style.zIndex = '100000'
+ water_div.style.width = document.documentElement.clientWidth + 'px'
+ water_div.style.height = document.documentElement.clientHeight + 'px'
+ document.body.appendChild(water_div)
+ }
+
+ return id
+}
+
+/**
+ * 璇ユ柟娉曞彧鍏佽璋冪敤涓�娆�
+ * @param:
+ * @text == 姘村嵃鍐呭
+ * @sourceBody == 姘村嵃娣诲姞鍦ㄥ摢閲岋紝涓嶄紶灏辨槸body
+ * */
+watermark.set = (text, sourceBody) => {
+ let id = setWatermark(text, sourceBody)
+ setInterval(() => {
+ if (document.getElementById(id) === null) {
+ id = setWatermark(text, sourceBody)
+ }
+ }, 2000)
+ // window.onresize = () => {//闃叉姘村嵃閲嶅娣诲姞
+ // setWatermark(text, sourceBody)
+ // }
+}
+
+export default watermark
diff --git a/src/views/scgl/gd.vue b/src/views/scgl/gd.vue
index 91e9e8e..65b42ea 100644
--- a/src/views/scgl/gd.vue
+++ b/src/views/scgl/gd.vue
@@ -50,6 +50,7 @@
<el-date-picker
v-model="form.paydate"
type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
style="width: 200px"
placeholder="閫夋嫨鏃ユ湡"
/>
@@ -61,6 +62,7 @@
<el-date-picker
v-model="form.createdate"
type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
style="width: 200px"
placeholder="閫夋嫨鏃ユ湡"
/>
@@ -74,18 +76,13 @@
</div>
<el-divider />
<div style="margin-left: 10px;display: flex">
- <el-button
- type="primary"
- icon="el-icon-refresh-right"
- >鍚屾ERP
- </el-button>
+ <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button type="primary" icon="el-icon-connection" @click="send('send')">娲惧彂</el-button>
<el-button
type="primary"
icon="el-icon-switch-button"
>璁㈠崟鍏抽棴
</el-button>
- <!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
- <!-- <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>-->
</div>
<el-divider />
<div class="elTableDiv">
@@ -107,12 +104,12 @@
<el-table-column
width="50"
>
- <template scope="scope">
+ <template slot-scope="{row}">
<el-radio
v-model="radioSelected"
- :label="scope.$index"
+ :label="row.wo_code"
style="color: #fff;padding-left: 10px; margin-right: -25px;"
- @change.native="getCurrentRow(scope.row)"
+ @change.native="getCurrentRow(row.wo_code)"
/>
</template>
</el-table-column>
@@ -129,23 +126,28 @@
>
<template slot-scope="{row}">
<div v-if="row.status==='NEW'">鏂板伐鍗�</div>
- <div v-if="row.status==='ALLOC'">宸叉淳鍙�</div>
- <div v-if="row.status==='START'">寮�宸�</div>
- <div v-if="row.status==='CLOSED'">瀹屽伐</div>
+ <div v-if="row.status==='CREATING'">鎵ц涓�</div>
+ <div v-if="row.status==='CREATED'">宸插叧闂�</div>
+ <!-- <div v-if="row.status==='ALLOC'">宸叉淳鍙�</div>-->
+ <!-- <div v-if="row.status==='START'">寮�宸�</div>-->
+ <!-- <div v-if="row.status==='CLOSED'">瀹屽伐</div>-->
</template>
</el-table-column>
<el-table-column
prop="wo_code"
label="宸ュ崟缂栧彿"
sortable="custom"
+ width="160"
/>
<el-table-column
prop="partcode"
label="浜у搧缂栫爜"
sortable="custom"
+ width="120"
/>
<el-table-column
prop="partname"
+ min-width="150"
label="浜у搧鍚嶇О"
sortable="custom"
/>
@@ -157,46 +159,61 @@
/>
<el-table-column
prop="plan_qty"
- label="宸ユ暟閲�"
+ label="宸ュ崟鏁�"
sortable="custom"
- />
- <el-table-column
- prop="plan_qty"
- label="鐢熶骇杞﹂棿"
- sortable="custom"
+ width="100"
/>
<el-table-column
prop="wkshp_name"
- label="宸ヨ壓璺嚎"
+ label="鐢熶骇杞﹂棿"
sortable="custom"
+ width="120"
/>
<el-table-column
prop="route_name"
- label="鐢熶骇杞﹂棿"
+ label="宸ヨ壓璺嚎"
sortable="custom"
+ width="120"
/>
<el-table-column
- prop="paydate"
- label="瑕佹眰浜や粯鏃堕棿"
+ prop="plan_startdate"
+ label="璁″垝寮�濮嬫椂闂�"
sortable="custom"
+ width="160"
+ />
+ <el-table-column
+ prop="plan_enddate"
+ label="璁″垝缁撴潫鏃堕棿"
+ sortable="custom"
+ width="160"
+ />
+ <el-table-column
+ prop="piroque"
+ label="宸ュ崟绛夌骇"
+ sortable="custom"
+ width="120"
/>
<el-table-column
prop="createuser"
label="鍒涘缓浜哄憳"
sortable="custom"
+ width="120"
/>
<el-table-column
prop="createdate"
label="鍒涘缓鏃堕棿"
+ width="160"
sortable="custom"
/>
<el-table-column
label="鎿嶄綔"
+ width="120"
+ fixed="right"
>
<template slot-scope="{row}">
<div class="operationClass">
- <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
- <!-- <el-button type="text" @click="del(row)">鍒犻櫎</el-button>-->
+ <el-button type="text" @click="check(row)">宸ュ簭浠诲姟</el-button>
+ <el-button v-if="row.status==='NEW'" type="text" @click="del(row)">鍒犻櫎</el-button>
</div>
</template>
</el-table-column>
@@ -216,61 +233,139 @@
</div>
<el-dialog
- :title="operation==='add'?'鏂板':'缂栬緫'"
+ :title="operation==='add'?'鏂板':'娲惧彂'"
:visible.sync="dialogVisible"
- width="50%"
+ width="60%"
top="15vh"
+ :close-on-click-modal="false"
@closed="handleClose"
@close="handleClose"
>
<el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
- <el-form-item label="璁㈠崟鐘舵��" prop="OrgCode">
+ <el-form-item
+ label="璁㈠崟鐘舵��"
+ prop="mesorderstus"
+ >
<el-select
- v-model="form.partcode"
- disabled
+ v-model="dialogForm.mesorderstus"
+ :disabled="operation!=='add'"
:popper-append-to-body="false"
- style="width: 220px"
+ style="width: 200px"
placeholder="璇烽�夋嫨"
>
<el-option
- v-for="item in OrgTypeArr"
+ v-for="item in erporderstusArr"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
- <el-form-item label="璁㈠崟缂栧彿" prop="OrgCode">
- <el-input v-model="dialogForm.OrgCode" disabled style="width: 220px" />
+ <el-form-item
+ v-if="operation==='add'"
+ label="浜у搧淇℃伅"
+ prop="partcode"
+ >
+ <el-select
+ v-model="dialogForm.partcode"
+ :disabled="operation!=='add'"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="partcodeChange"
+ >
+ <el-option
+ v-for="item in partArr"
+ :key="item.partcode"
+ :label="item.partname"
+ :value="item.partcode"
+ />
+ </el-select>
</el-form-item>
- <el-form-item label="浜у搧缂栫爜" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+ <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode">
+ <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
- <el-form-item label="浜у搧鍚嶇О" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+ <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜" prop="partcode">
+ <el-input v-model="dialogForm.partcode" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
- <el-form-item label="璁㈠崟鏁伴噺" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+ <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">
+ <el-input v-model="dialogForm.partname" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
- <el-form-item label="浜у搧瑙勬牸" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" disabled style="width: 220px" />
+ <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty">
+ <el-input
+ v-model="dialogForm.mesqty"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ :disabled="operation!=='add'"
+ style="width: 200px"
+ />
</el-form-item>
- <el-form-item label="涓嬭揪鏁伴噺" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item v-if="operation!=='add'" label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="dialogForm.partspec" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
- <el-form-item label="涓嬪崟鏁伴噺" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopcode">
+ <el-select
+ v-model="dialogForm.wkshopcode"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
</el-form-item>
- <el-form-item label="浜や粯鏃堕棿" prop="OrgName">
+ <el-form-item label="宸ヨ壓璺嚎" prop="routecode">
+ <el-select
+ v-model="dialogForm.routecode"
+ :disabled="dialogForm.partcode===''"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in routeArr"
+ :key="item.route_code"
+ :label="item.route_name"
+ :value="item.route_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="寮�濮嬫椂闂�" prop="planstartdate">
<el-date-picker
- v-model="dialogForm.OrgName"
+ v-model="dialogForm.planstartdate"
type="date"
- style="width: 220px"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 200px"
placeholder="閫夋嫨鏃ユ湡"
/>
- <!-- <el-input v-model="dialogForm.OrgName" style="width: 220px" />-->
</el-form-item>
-
+ <el-form-item label="缁撴潫鏃堕棿" prop="planenddate">
+ <el-date-picker
+ v-model="dialogForm.planenddate"
+ type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 200px"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ </el-form-item>
+ <el-form-item label="宸ュ崟绛夌骇" prop="orderlev">
+ <el-select
+ v-model="dialogForm.orderlev"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in orderlevArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<div class="footerButton">
@@ -284,9 +379,9 @@
<script>
import Pagination from '@/components/Pagination'
-import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
-import { getCookie } from '@/utils/auth'
-import { ErpOrderSearch, MesOrderSearch } from '@/api/scgl'
+import { DeleteMesOrder, MesOrderSearch } from '@/api/scgl'
+import { WorkShopSelect } from '@/api/sbgl'
+import { PartSelect, PartSelectRpute } from '@/api/zzmx'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
@@ -324,30 +419,71 @@
},
erporderstusArr: [
{ code: 'NEW', name: '鏂板伐鍗�' },
- { code: 'ALLOC', name: '宸叉淳鍙�' },
- { code: 'START', name: '寮�宸�' },
- { code: 'CLOSED', name: '瀹屽伐' }
+ { code: 'CREATING', name: '鎵ц涓�' },
+ { code: 'CREATED', name: '宸插叧闂�' }
+ // { code: 'ALLOC', name: '宸叉淳鍙�' },
+ // { code: 'START', name: '寮�宸�' },
+ // { code: 'CLOSED', name: '瀹屽伐' }
],
total: 10,
radioSelected: '',
tableData: [],
dialogVisible: false,
dialogForm: {
- OrgType: '',
- OrgCode: '',
- OrgName: '',
- SupUnit: ''// 涓婄骇鍗曚綅
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+ routename: '', // 宸ヨ壓璺嚎鍚嶇О
+
+ mesorderstus: '', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ mesqty: '', // 宸ュ崟鏁伴噺
+
+ routecode: '', // 宸ヨ壓璺嚎缂栫爜
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ planstartdate: '', // 璁″垝寮�濮嬫椂闂�
+ planenddate: '', // 璁″垝瀹屾垚鏃堕棿
+ orderlev: '', // 宸ュ崟绛夌骇
+
+ OperType: '' // 鎿嶄綔绫诲瀷
},
+ partArr: [], // 浜у搧淇℃伅
+ wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍
+ routeArr: [], // 宸ヨ壓璺嚎鏁扮粍
+ orderlevArr: [
+ { code: '101', name: '涓�鑸�' },
+ { code: '102', name: '閲嶈' },
+ { code: '103', name: '鐗圭骇' }
+ ], // 宸ュ崟绛夌骇鏁扮粍
operation: '',
dialogFormRules: {
- OrgType: [
- { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ mesorderstus: [
+ { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] }
],
- OrgCode: [
+ partcode: [
+ { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] }
+ ],
+ mesordercode: [
{ required: true, validator: validateName, trigger: ['blur', 'change'] }
],
- OrgName: [
- { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ mesqty: [
+ { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wkshopcode: [
+ { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] }
+ ],
+ routecode: [
+ { required: true, message: '璇烽�夋嫨宸ヨ壓璺嚎', trigger: ['blur', 'change'] }
+ ],
+ planstartdate: [
+ { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] }
+ ],
+ planenddate: [
+ { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ orderlev: [
+ { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] }
]
}
@@ -356,6 +492,7 @@
},
created() {
this.getMesOrderSearch()
+ this.getSelect()
},
mounted() {
window.addEventListener('resize', this.getHeight)
@@ -366,6 +503,15 @@
const res = await MesOrderSearch(this.form)
this.tableData = res.data
this.total = res.count
+ },
+ async getSelect() {
+ // 鑾峰彇浜у搧淇℃伅
+ const { data: res1 } = await PartSelect()
+ this.partArr = res1
+
+ // 鑾峰彇鐢熶骇杞﹂棿鏁扮粍
+ const { data: res2 } = await WorkShopSelect()
+ this.wkshopArr = res2
},
// 鎺掑簭鏀瑰彉鏃�
sortChange({ column, prop, order }) {
@@ -384,11 +530,9 @@
search() {
this.getMesOrderSearch()
},
- upload() {
- },
// 閲嶇疆
- reset() {
+ reset(val) {
this.form.erporderstus = ''
this.form.erpordercode = ''
this.form.partcode = ''
@@ -400,49 +544,99 @@
this.getMesOrderSearch()
},
// 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
- getCurrentRow(row) {
- console.log(row, 1)
- this.radioSelected = row
+ getCurrentRow(wo_code) {
+ this.radioSelected = wo_code
},
// 鏂板鎸夐挳
- add(operation) {
+ async add(operation) {
this.operation = operation
this.dialogVisible = true
},
- // 淇敼鎸夐挳
- edit(operation, row) {
+
+ // 浜у搧淇℃伅鍊兼敼鍙�
+ async partcodeChange(val) {
+ const { data: res } = await PartSelectRpute({ partcode: val })
+ this.routeArr = res
+ this.dialogForm.routecode = ''
+ },
+ // 宸ュ簭浠诲姟
+ check() {
+
+ },
+ // 娲惧彂
+ send(operation) {
+ if (this.radioSelected.length < 1) {
+ return this.$message.info('璇峰厛閫夋嫨宸ュ崟锛�')
+ }
+
+ const row = this.tableData.find(item => item.wo_code === this.radioSelected)
+
+ if (row.status !== 'NEW') {
+ return this.$message.info('姝ゅ伐鍗曚负闈炴湭寮�濮嬬姸鎬侊紝涓嶅彲娲惧彂锛�')
+ }
this.operation = operation
this.dialogVisible = true
-
this.$nextTick(() => {
- this.dialogForm.OrgCode = row.org_code
- this.dialogForm.OrgName = row.org_name
- this.dialogForm.SupUnit = row.parent_id
+ this.dialogForm.mesorderstus = row.status
+ this.dialogForm.mesordercode = row.wo_code
+ this.dialogForm.partcode = row.partcode
+ this.partcodeChange(row.partcode)
+ this.dialogForm.partname = row.partname
+ this.dialogForm.mesqty = row.plan_qty
+ this.dialogForm.partspec = row.partspec
+ this.dialogForm.routecode = row.route_code// 宸ヨ壓璺嚎浠g爜
+ this.dialogForm.wkshopcode = row.wkshp_code// 鐢熶骇杞﹂棿浠g爜
+ // handleDatatime(row.plan_startdate.toString().length > 0)
+ this.dialogForm.planstartdate = row.plan_startdate
+ this.dialogForm.planenddate = row.plan_enddate
+ this.dialogForm.orderlev = row.piroque // 绛夌骇
})
},
// 鍒犻櫎鎸夐挳
async del(row) {
+ // if (row.status !== 'NEW') {
+ // return this.$message.success('')
+ // }
this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- DeleteOrganization({ orgid: row.code }).then(res => {
- if (res.code === '200') {
- this.$message.success('鍒犻櫎鎴愬姛!')
- this.getMesOrderSearch()
- }
- })
+ console.log(row, 1)
+ const data = {
+ wocode: row.wo_code,
+ m_po: row.m_po,
+ orderqty: row.plan_qty
+ }
+ console.log(data, 2)
+ // DeleteMesOrder(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // this.getMesOrderSearch()
+ // }
+ // })
}).catch(() => {
this.$message.info('宸插彇娑堝垹闄�')
})
},
// 瀵硅瘽妗嗗叧闂簨浠�
handleClose() {
- this.dialogForm.OrgType = ''
- this.dialogForm.OrgCode = ''
- this.dialogForm.OrgName = ''
- this.dialogForm.SupUnit = ''
+ this.dialogForm.partname = '' // 浜у搧鍚嶇О
+ this.dialogForm.partspec = '' // 浜у搧瑙勬牸
+ this.dialogForm.wkshopname = '' // 鐢熶骇杞﹂棿鍚嶇О
+ this.dialogForm.routename = '' // 宸ヨ壓璺嚎鍚嶇О
+
+ this.dialogForm.mesorderstus = '' // 宸ュ崟鐘舵�佺爜
+ this.dialogForm.mesordercode = '' // 宸ュ崟缂栧彿
+ this.dialogForm.partcode = '' // 浜у搧缂栫爜
+ this.dialogForm.mesqty = '' // 宸ュ崟鏁伴噺
+
+ this.dialogForm.routecode = '' // 宸ヨ壓璺嚎缂栫爜
+ this.dialogForm.wkshopcode = '' // 鐢熶骇杞﹂棿缂栫爜
+ this.dialogForm.planstartdate = '' // 璁″垝寮�濮嬫椂闂�
+ this.dialogForm.planenddate = '' // 璁″垝瀹屾垚鏃堕棿
+ this.dialogForm.orderlev = '' // 宸ュ崟绛夌骇
+
this.$refs.dialogForm.clearValidate()
},
// 瀵硅瘽妗嗗彇娑�
@@ -454,20 +648,33 @@
this.$refs.dialogForm.validate(valid => {
if (valid) {
const data = {
- OrganCode: this.dialogForm.OrgCode,
- OrganName: this.dialogForm.OrgName,
- OperType: this.operation === 'add' ? 'Add' : 'Update',
- Operator: getCookie('admin')
+ partname: this.dialogForm.partname, // 浜у搧鍚嶇О
+ partspec: this.dialogForm.partspec, // 浜у搧瑙勬牸
+ wkshopname: this.dialogForm.wkshopname, // 鐢熶骇杞﹂棿鍚嶇О
+ routename: this.dialogForm.routename, // 宸ヨ壓璺嚎鍚嶇О
+
+ mesorderstus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵�佺爜
+ mesordercode: this.dialogForm.mesordercode, // 宸ュ崟缂栧彿
+ partcode: this.dialogForm.partcode, // 浜у搧缂栫爜
+ mesqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
+
+ routecode: this.dialogForm.routecode, // 宸ヨ壓璺嚎缂栫爜
+ wkshopcode: this.dialogForm.wkshopcode, // 鐢熶骇杞﹂棿缂栫爜
+ planstartdate: this.dialogForm.planstartdate, // 璁″垝寮�濮嬫椂闂�
+ planenddate: this.dialogForm.planenddate, // 璁″垝瀹屾垚鏃堕棿
+ orderlev: this.dialogForm.orderlev, // 宸ュ崟绛夌骇
+ OperType: this.operation === 'add' ? 'Add' : 'Update'
}
- AddUpdateOrganization(data).then(res => {
- if (res.code === '200') {
- this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
- this.dialogVisible = false
- this.getMesOrderSearch()
- } else {
- this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
- }
- })
+ console.log(data, 1)
+ // AddUpdateMesOrder(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getMesOrderSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
}
})
},
@@ -646,8 +853,8 @@
border-color: $main_color;
}
-.elTableDiv{
- ::v-deep .el-radio__label{
+.elTableDiv {
+ ::v-deep .el-radio__label {
display: none;
}
}
diff --git a/src/views/scgl/gdpg.vue b/src/views/scgl/gdpg.vue
index 09a8624..620487b 100644
--- a/src/views/scgl/gdpg.vue
+++ b/src/views/scgl/gdpg.vue
@@ -1,11 +1,195 @@
-<template />
+<template>
+ <div>
+ <el-button type="primary" @click="clickMe">鐐瑰嚮鎴�</el-button>
+
+ <el-dialog
+ title="棰勮"
+ :visible.sync="dialogVisible"
+ width="70%"
+ >
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <div id="printMe">
+
+ <div style="display: flex;justify-content: space-around">
+ <!-- 浜岀淮鐮侀儴鍒�-->
+ <div>
+ <div id="qrCode" ref="qrCodeDiv" />
+ <!-- <img :src="QRImgUrl">-->
+
+ <div style="font-size: 18px;width: 100px;text-align: center;margin-top: 10px">MO-79601</div>
+ </div>
+ <!-- 鍏徃鍚嶇О鍙婃墦鍗板崟绫诲瀷-->
+ <div
+ style="height: 100px;display: flex;justify-content:space-between;align-items: center;flex-direction: column;font-weight: bolder"
+ >
+ <div style="font-size: 26px;">姘稿悍鏂板嚡杩伐涓氫簰鑱旀湁闄愬叕鍙�</div>
+ <div style="font-size: 22px;">濮斿娲惧崟</div>
+ </div>
+ <!--鍙充晶姘村嵃鍙婂鍚嶆棩鏈�-->
+ <div>
+ <div ref="watermark" style="width: 100px;height:100px;" />
+ <div style="font-weight: bolder">
+ <div>濮撳悕锛氬紶涓�</div>
+ <div>鏃ユ湡锛�2022-07-05</div>
+ </div>
+ </div>
+ </div>
+ <el-divider />
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%"
+ >
+ <el-table-column
+ prop="date"
+ label="鏃ユ湡"
+ width="180"
+ />
+ <el-table-column
+ prop="name"
+ label="濮撳悕"
+ width="180"
+ />
+ <el-table-column
+ prop="address"
+ label="鍦板潃"
+ />
+ </el-table>
+ </div>
+
+ <!-- <vue-easy-print ref="printRef" :button-show="true">-->
+ <!-- x-->
+ <!-- </vue-easy-print>-->
+
+ <!-- 鎵撳嵃鐨勬寜閽紝鏄剧ず鎵撳嵃棰勮 -->
+ <!-- <el-button v-print="'#printMe'">鎵撳嵃</el-button>-->
+ <el-button v-print="printObj">鎵撳嵃</el-button>
+
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
<script>
+import vueEasyPrint from 'vue-easy-print'
+import QRCode from 'qrcodejs2'
+// import QRCode from 'qrcode'
+
export default {
- name: 'Gdpg'
+ name: 'Gdpg',
+ components: {
+ vueEasyPrint
+ },
+ data() {
+ return {
+ firstWatermark: true, // 绗竴娆℃樉绀烘按鍗�
+ firstbindQRCode: true, // 绗竴娆℃樉绀轰簩缁寸爜
+ form: {
+ describle: ''
+ },
+ QRImgUrl: '',
+ QRlink: 'www.xxx.com',
+ dialogVisible: false,
+ printObj: {
+ id: 'printMe',
+ popTitle: '鎵撳嵃妯℃澘',
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>'
+ // id: 'printMe',
+ // popTitle: '鎵撳嵃', // 鎵撳嵃閰嶇疆椤典笂鏂规爣棰�
+ // extraHead: '', // 鏈�涓婃柟鐨勫ご閮ㄦ枃瀛楋紝闄勫姞鍦╤ead鏍囩涓婄殑棰濆鏍囩,浣跨敤閫楀彿鍒嗛殧
+ // preview: '', // 鏄惁鍚姩棰勮妯″紡锛岄粯璁ゆ槸false锛堝紑鍚瑙堟ā寮忥紝鍙互鍏堥瑙堝悗鎵撳嵃锛�
+ // previewTitle: '', // 鎵撳嵃棰勮鐨勬爣棰橈紙寮�鍚瑙堟ā寮忓悗鍑虹幇锛�,
+ // previewPrintBtnLabel: '', // 鎵撳嵃棰勮鐨勬爣棰樼殑涓嬫柟鎸夐挳鏂囨湰锛岀偣鍑诲彲杩涘叆鎵撳嵃锛堝紑鍚瑙堟ā寮忓悗鍑虹幇锛�
+ // zIndex: '', // 棰勮鐨勭獥鍙g殑z-index锛岄粯璁ゆ槸 20002锛堟鍊艰楂樹竴浜涳紝杩欐秹鍙婂埌棰勮妯″紡鏄惁鏄剧ず鍦ㄦ渶涓婇潰锛�
+ // previewBeforeOpenCallback() {}, // 棰勮绐楀彛鎵撳紑涔嬪墠鐨刢allback锛堝紑鍚瑙堟ā寮忚皟鐢級
+ // previewOpenCallback() {}, // 棰勮绐楀彛鎵撳紑涔嬪悗鐨刢allback锛堝紑鍚瑙堟ā寮忚皟鐢級
+ // beforeOpenCallback() {}, // 寮�鍚墦鍗板墠鐨勫洖璋冧簨浠�
+ // openCallback() {}, // 璋冪敤鎵撳嵃涔嬪悗鐨勫洖璋冧簨浠�
+ // closeCallback() {}, // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ // url: '',
+ // standard: '',
+ // extraCss: ''
+ },
+ tableData: [{
+ date: '2016-05-02',
+ name: '鐜嬪皬铏�',
+ address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�'
+ }, {
+ date: '2016-05-04',
+ name: '鐜嬪皬铏�',
+ address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�'
+ }, {
+ date: '2016-05-01',
+ name: '鐜嬪皬铏�',
+ address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
+ }, {
+ date: '2016-05-03',
+ name: '鐜嬪皬铏�',
+ address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
+ }]
+ }
+ },
+ mounted() {
+
+ },
+ methods: {
+ addWatermark() {
+ if (this.firstWatermark) {
+ console.log(this.firstWatermark)
+ this.$watermark.set('鍑开鍒堕��', this.$refs.watermark)
+ this.firstWatermark = false
+ }
+ },
+ clickMe() {
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.bindQRCode()
+ this.addWatermark()
+ })
+ },
+ bindQRCode() {
+ if (this.firstbindQRCode) {
+ new QRCode(this.$refs.qrCodeDiv, {
+ // text: 'Vue瀹炵幇鐢熸垚浜岀淮鐮侊紒',
+ text: 'Vue瀹炵幇鐢熸垚浜岀淮鐮侊紒',
+ width: 100,
+ height: 100,
+ colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ this.firstbindQRCode = false
+ }
+
+ // const opts = {
+ // errorCorrectionLevel: 'L', // 瀹归敊绾у埆
+ // type: 'image/png', // 鐢熸垚鐨勪簩缁寸爜绫诲瀷
+ // quality: 0.3, // 浜岀淮鐮佽川閲�
+ // margin: 5, // 浜岀淮鐮佺暀鐧借竟璺�
+ // width: 128, // 瀹�
+ // height: 128, // 楂�
+ // text: 'http://www.baidu.com', // 浜岀淮鐮佸唴瀹�
+ // color: {
+ // dark: '#666666', // 鍓嶆櫙鑹�
+ // light: '#fff'// 鑳屾櫙鑹�
+ // }
+ // }
+ // // this.QRlink 鐢熸垚鐨勪簩缁寸爜鍦板潃url
+ // QRCode.toDataURL(this.QRlink, opts, (err, url) => {
+ // if (err) throw err
+ // // 灏嗙敓鎴愮殑浜岀淮鐮佽矾寰勫鍒剁粰data鐨凲RImgUrl
+ // this.QRImgUrl = url
+ // })
+ }
+
+ }
}
</script>
<style scoped>
</style>
+
diff --git a/src/views/scgl/scdd.vue b/src/views/scgl/scdd.vue
index a063c82..0a366ff 100644
--- a/src/views/scgl/scdd.vue
+++ b/src/views/scgl/scdd.vue
@@ -31,15 +31,6 @@
<el-form-item label="浜у搧缂栫爜" style=" display: flex;">
<el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
-
- <!-- <el-select v-model="form.partcode" :popper-append-to-body="false" style="width: 200px" placeholder="璇烽�夋嫨">-->
- <!-- <el-option-->
- <!-- v-for="item in partArr"-->
- <!-- :key="item.code"-->
- <!-- :label="item.name"-->
- <!-- :value="item.code"-->
- <!-- />-->
- <!-- </el-select>-->
</el-form-item>
<el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
<el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
@@ -51,6 +42,7 @@
<el-date-picker
v-model="form.paydate"
type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
style="width: 200px"
placeholder="閫夋嫨鏃ユ湡"
/>
@@ -62,6 +54,7 @@
<el-date-picker
v-model="form.createdate"
type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
style="width: 200px"
placeholder="閫夋嫨鏃ユ湡"
/>
@@ -78,7 +71,7 @@
<el-button
type="primary"
icon="el-icon-refresh-right"
- @click="reset"
+ @click="reset('update')"
>鍚屾ERP
</el-button>
<el-button
@@ -212,8 +205,9 @@
<el-dialog
:title="operation==='add'?'鏂板':'涓嬭揪'"
:visible.sync="dialogVisible"
- width="50%"
+ width="60%"
top="15vh"
+ :close-on-click-modal="false"
@closed="handleClose"
@close="handleClose"
>
@@ -300,10 +294,8 @@
<script>
import Pagination from '@/components/Pagination'
-import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
-import { getCookie } from '@/utils/auth'
import { ClosedErpOrder, ErpOrderSearch, MarkSaveErpOrder } from '@/api/scgl'
-import { PartSelect } from '@/api/zzmx'
+import { handleDatatime } from '@/utils/global'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
@@ -340,7 +332,6 @@
page: 1, // 绗嚑椤�
rows: 20 // 姣忛〉澶氬皯鏉�
},
- // partArr: [],
erporderstusArr: [
{ code: 'NEW', name: '鏂拌鍗�' },
{ code: 'CREATING', name: '鍒涘缓涓�' },
@@ -348,7 +339,6 @@
{ code: 'CLOSED', name: '宸插叧闂�' }
],
total: 10,
- // radioSelected: {},
radioSelected: '',
tableData: [],
dialogVisible: false,
@@ -403,13 +393,6 @@
this.tableData = res.data
this.total = res.count
},
- // syncGetErpOrderSearch() {
- // this.getErpOrderSearch()
- // },
- // async getPartSelect() {
- // const { data: res } = await PartSelect()
- // this.partArr = res
- // },
// 鎺掑簭鏀瑰彉鏃�
sortChange({ column, prop, order }) {
if (order === 'descending') {
@@ -428,7 +411,7 @@
this.getErpOrderSearch()
},
// 閲嶇疆
- reset() {
+ reset(val) {
this.form.erporderstus = ''
this.form.erpordercode = ''
this.form.partcode = ''
@@ -438,6 +421,9 @@
this.form.creatuser = ''
this.form.createdate = ''
this.getErpOrderSearch()
+ if (val.length > 0) {
+ this.$message.success('ERP宸插悓姝ワ紒')
+ }
},
// 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
getCurrentRow(wo) {
@@ -445,29 +431,31 @@
},
// 璁㈠崟鍏抽棴
async orderClose() {
- console.log(this.radioSelected, 1)
-
- this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- this.tableData.forEach((item, index) => {
- if (this.radioSelected === item.wo) {
- if (item.status !== 'NEW') {
- return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
- }
+ if (this.radioSelected.length < 1) {
+ return this.$message.info('璇峰厛閫夋嫨璁㈠崟锛�')
+ }
+ this.tableData.find(item => {
+ if (item.wo === this.radioSelected) {
+ if (item.status !== 'NEW') {
+ return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
+ } else {
+ this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ ClosedErpOrder({ erpordercode: this.radioSelected }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('璁㈠崟鍏抽棴鎴愬姛!')
+ this.getErpOrderSearch()
+ // this.radioSelected = ''
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝叧闂紒')
+ })
}
- })
-
- ClosedErpOrder({ erpordercode: this.radioSelected }).then(res => {
- if (res.code === '200') {
- this.$message.success('鍒犻櫎鎴愬姛!')
- this.getErpOrderSearch()
- }
- })
- }).catch(() => {
- this.$message.info('宸插彇娑堝垹闄�')
+ }
})
},
// 鏂板鎸夐挳
@@ -521,6 +509,13 @@
},
// 瀵硅瘽妗嗙‘璁�
dialogVisibleConfirm() {
+ if (this.dialogForm.markqty < 1 || this.dialogForm.markqty > this.dialogForm.erpqty - this.dialogForm.relse_qty) {
+ return this.$message.info('涓嬪崟鏁伴噺瓒呭嚭鍙笅鍗曟暟鐨勮寖鍥达紒')
+ }
+ if (this.dialogForm.ordernum < 1 || this.dialogForm.ordernum > this.dialogForm.markqty) {
+ return this.$message.info('涓嬪崟鍗曟暟瓒呭嚭鍙笅鍗曞崟鏁扮殑鑼冨洿锛�')
+ }
+
this.$refs.dialogForm.validate(valid => {
if (valid) {
const data = {
diff --git a/src/views/scgl/sckbg.vue b/src/views/scgl/sckbg.vue
index fdaf764..2068f1a 100644
--- a/src/views/scgl/sckbg.vue
+++ b/src/views/scgl/sckbg.vue
@@ -1,11 +1,658 @@
-<template />
+<template>
+ <div>
+ <div class="body" style="padding: 0;height: 100%" :style="{height:mainHeight+'px'}">
+
+ <el-tabs type="border-card">
+ <el-tab-pane label="鐢熶骇鍒楄〃">
+ <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
+ <div style="display: flex;align-items: center">
+ <div style="width: 70px">宸ュ簭鐮侊細</div>
+ <el-input
+ v-model="produceCode"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ name="produceCode"
+ style="width: 500px"
+ />
+ </div>
+ <div style="display: flex;padding-right: 10px">
+ <el-button><svg-icon icon-class="start_time" style="margin-right: 2px" />寮�濮�</el-button>
+ <el-button><svg-icon icon-class="report_work" style="margin-right: 2px" />鎶ュ伐</el-button>
+ </div>
+ </div>
+ <el-divider />
+ <div class="elTableDiv">
+ <el-table
+ :data="tableData"
+ :height="tableHeight"
+ border
+ stripe
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <el-table-column
+ width="50"
+ >
+ <template slot-scope="{row}">
+ <!-- <el-radio-->
+ <!-- v-model="radioSelected"-->
+ <!-- :label="row.wo"-->
+ <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"-->
+ <!-- @change.native="getCurrentRow(row.wo)"-->
+ <!-- />-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="org_code"
+ label="鐘舵��"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="org_name"
+ label="宸ュ崟鍙�"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="description"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸ュ簭"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸ュ簭鎻忚堪"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="浠诲姟鏁伴噺"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸叉姤宸ユ暟閲�"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_user"
+ label="涓嶈壇鏁伴噺"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="璁″垝寮�宸ユ棩鏈�"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
+ <el-button type="text" @click="del(row)">鍒犻櫎</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMesOrderStepSearch"
+ />
+ </el-tab-pane>
+ <el-tab-pane label="澶栧崗鍒楄〃">
+ <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
+ <div style="display: flex;align-items: center">
+ <div style="width: 70px">宸ュ簭鐮侊細</div>
+ <el-input
+ v-model="produceCode"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ name="produceCode"
+ style="width: 500px"
+ />
+ </div>
+ <div style="display: flex;padding-right: 10px">
+ <el-button><svg-icon icon-class="start_time" style="margin-right: 2px" />鍙戞枡</el-button>
+ <el-button><svg-icon icon-class="report_work" style="margin-right: 2px" />鏀舵枡</el-button>
+ </div>
+ </div>
+ <el-divider />
+ <div class="elTableDiv">
+ <el-table
+ :data="tableData"
+ :height="tableHeight"
+ border
+ stripe
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <el-table-column
+ width="50"
+ >
+ <template slot-scope="{row}">
+ <!-- <el-radio-->
+ <!-- v-model="radioSelected"-->
+ <!-- :label="row.wo"-->
+ <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"-->
+ <!-- @change.native="getCurrentRow(row.wo)"-->
+ <!-- />-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="org_code"
+ label="鐘舵��"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="org_name"
+ label="宸ュ崟鍙�"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="description"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸ュ簭"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸ュ簭鎻忚堪"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="浠诲姟鏁伴噺"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="parentorg_name"
+ label="宸叉姤宸ユ暟閲�"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_user"
+ label="涓嶈壇鏁伴噺"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="璁″垝寮�宸ユ棩鏈�"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
+ <el-button type="text" @click="del(row)">鍒犻櫎</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMesOrderStepSearch"
+ />
+ </el-tab-pane>
+
+ </el-tabs>
+
+ </div>
+
+ <el-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="60%"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="缁勭粐绫诲瀷" prop="OrgType" />
+ <el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
+ <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
+ <el-input v-model="dialogForm.OrgName" style="width: 200px" />
+ </el-form-item>
+ <el-form-item prop="SupUnit" label="涓婄骇鍗曚綅">
+ <el-select
+ v-model="dialogForm.SupUnit"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in SupUnitArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
+import { getCookie } from '@/utils/auth'
+import $ from 'jquery'
+import { MesOrderStepSearch } from '@/api/scgl'
+
+const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
- name: 'Sckbg'
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ data() {
+ const validateName = (rule, value, callback) => {
+ if (!value) {
+ return callback(new Error('璇疯緭鍏ョ紪鐮�'))
+ } else {
+ if (SER_HZ.test(value)) {
+ return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�'))
+ } else {
+ callback()
+ }
+ }
+ }
+ const validateTypeCode = (rule, value, callback) => {
+ if (!value) {
+ return callback(new Error('璇烽�夋嫨涓婄骇'))
+ } else {
+ callback()
+ }
+ }
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ produceCode: '', // 宸ュ簭鐮�
+ form: {
+ orderstepqrcode: '', // 鎵弿鐨勪簩缁寸爜淇℃伅
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateName, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ],
+ SupUnit: [
+ { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] }
+ ]
+ }
+
+ }
+ },
+ created() {
+ this.getMesOrderStepSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.$nextTick(() => {
+ $("input[name='produceCode']").focus()
+ })
+ },
+ methods: {
+ async getMesOrderStepSearch() {
+ // const res = await MesOrderStepSearch(this.form)
+ // this.tableData = res.data
+ // this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderStepSearch()
+ },
+ getCurrentRow() {
+
+ },
+ // 鏌ヨ
+ search() {
+ this.getMesOrderStepSearch()
+ },
+ upload() {
+
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.OrgCode = ''
+ this.form.OrgName = ''
+ this.form.OrgType = ''
+ this.form.UserName = ''
+ this.getMesOrderStepSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.OrgCode = row.org_code
+ this.dialogForm.OrgName = row.org_name
+ this.dialogForm.SupUnit = row.parent_id
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteOrganization({ orgid: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ this.getMesOrderStepSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ AddUpdateOrganization(data).then(res => {
+ if (res.code === '200') {
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getMesOrderStepSearch()
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 250
+ this.tableHeight = this.mainHeight - 100
+ })
+ }
+ }
}
</script>
-<style scoped>
+<style lang="scss" scoped>
+$main_color: #42b983;
+::v-deep .el-button--primary {
+ background-color: $main_color !important;
+ height: 30px;
+ display: flex;
+ align-items: center;
+ //border: 1px solid $main_color;
+ border: none;
+ padding: 0 20px;
+}
+::v-deep .el-button--primary:hover {
+ border: none;
+}
+::v-deep .el-button--info {
+ height: 30px;
+ display: flex;
+ align-items: center;
+ padding: 0 20px;
+}
+
+::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active {
+ background-color: $main_color !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.footerButton {
+ display: flex;
+ justify-content: end;
+}
+
+::v-deep .el-button--default {
+ background-color: #ffffff !important;
+ height: 30px;
+ display: flex;
+ align-items: center;
+ padding: 0 20px;
+}
+
+::v-deep .el-button--default:hover {
+ color: #606266;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .el-radio__input.is-checked .el-radio__inner {
+ background-color: $main_color;
+ border-color: $main_color;
+}
+
+::v-deep .el-radio__input.is-checked + .el-radio__label {
+ color: $main_color !important;
+}
+
+::v-deep .el-checkbox__input.is-checked .el-checkbox__inner {
+ border-color: $main_color;
+ background-color: $main_color;
+}
+
+::v-deep .el-input__inner {
+ height: 30px;
+ line-height: 30px;
+}
+::v-deep .el-input__inner:focus {
+ border-color: $main_color;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex !important;
+ align-items: center !important;
+ justify-content: space-between !important;
+}
+
+::v-deep .el-button--text {
+ color: $main_color;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.operationClass {
+ height: 23px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.el-icon-share {
+ color: $main_color;
+ cursor: pointer;
+}
+
+.el-checkbox.is-bordered.is-checked {
+ border-color: $main_color;
+}
+
+::v-deep .el-radio__input.is-checked .el-radio__inner {
+ border-color: $main_color;
+ background: $main_color;
+}
+
+::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ border-color: $main_color;
+ background: $main_color;
+}
+
+::v-deep .el-checkbox__input.is-checked + .el-checkbox__label {
+ color: $main_color !important;
+}
+
+::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered {
+ margin: 10px 30px 0px 0;
+}
+
+::v-deep .el-radio__input.is-checked + .el-radio__label {
+ color: $main_color;
+}
+
+::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
+ margin: 10px 30px 0px 0;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+::v-deep .el-input__inner:focus {
+ border-color: $main_color;
+}
+
+::v-deep .el-select .el-input__inner:focus{
+ border-color: $main_color;
+}
+
+::v-deep .el-select-dropdown__item.selected{
+ color: $main_color;
+}
+::v-deep .el-checkbox__inner:hover{
+ border-color: $main_color;
+}
+::v-deep .el-textarea__inner:focus{
+ border-color: $main_color;
+}
</style>
diff --git a/src/views/template.vue b/src/views/template.vue
index c3bb35b..a290ca2 100644
--- a/src/views/template.vue
+++ b/src/views/template.vue
@@ -129,7 +129,7 @@
<el-dialog
:title="operation==='add'?'鏂板':'缂栬緫'"
:visible.sync="dialogVisible"
- width="50%"
+ width="60%"
top="15vh"
@closed="handleClose"
@close="handleClose"
@@ -137,15 +137,15 @@
<el-form ref="dialogForm" :rules="dialogFormRules" :model="dialogForm" label-width="80px">
<el-form-item label="缁勭粐绫诲瀷" prop="OrgType" />
<el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
- <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 220px" />
+ <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
<el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-input v-model="dialogForm.OrgName" style="width: 200px" />
</el-form-item>
<el-form-item prop="SupUnit" label="涓婄骇鍗曚綅">
<el-select
v-model="dialogForm.SupUnit"
- style="width: 220px"
+ style="width: 200px"
placeholder="璇烽�夋嫨"
:popper-append-to-body="false"
>
--
Gitblit v1.9.3