From 6963bf915d1e6e22ea1501e15a13cc0215c590c5 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 06 六月 2024 00:29:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/components/do/b1-ins-order/add.vue | 110 ++++++
src/util/file.js | 20 +
static/js/menu.js | 6
src/components/view/person-manage.vue | 2
src/assets/api/controller.js | 6
src/components/view/a6-waste-handover.vue | 272 ++++++++++++++++++
src/components/view/a6-external-personnel-management.vue | 126 ++++++++
src/view/notice.vue | 4
src/main.js | 6
src/components/do/b1-inspect-order-plan/Inspection.vue | 171 +++++++++++
src/components/do/b3-work-time-management/work-time-management.vue | 1
src/components/do/b3-work-time-management/work-time-statistics.vue | 30 +
src/components/do/b1-ins-order/fiberoptic-config.vue | 2
src/components/view/a6-device-management.vue | 2
src/components/view/a6-standard-material-list.vue | 138 +++++++++
15 files changed, 870 insertions(+), 26 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index e4d62e7..2f5338c 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -180,6 +180,11 @@
submitPlan: "/insOrderPlan/submitPlan", //妫�楠屼换鍔℃彁浜�
inspectionOrderDetailsTaskSwitching: "/insOrderPlan/inspectionOrderDetailsTaskSwitching", // 妫�楠屽崟璇︽儏-浠诲姟鍒囨崲
getInsProduct: "/insOrderPlan/getInsProduct", // 鑾峰彇妫�楠岄」鐩拰妯℃澘鍐呭
+ getFileList: "/insOrderPlan/getFileList", // 鏌ョ湅妫�楠屽崟涓嬬殑闄勪欢鍒楄〃
+ delfile: "/insOrderPlan/delfile", // 闄勪欢鍒犻櫎
+ uploadFile: "/insOrderPlan/uploadFile", // 闄勪欢涓婁紶
+ downFile: "/insOrderPlan/downFile", // 闄勪欢涓嬭浇
+ checkSubmitPlan: "/insOrderPlan/checkSubmitPlan", // 鏍¢獙妫�楠屼换鍔℃彁浜�
}
const systemLog = {
@@ -341,4 +346,5 @@
const auxiliaryOriginalHours = {
selectAuxiliaryOriginalHours: "/auxiliaryOriginalHours/selectAuxiliaryOriginalHours", //鏌ヨ鍘熷宸ユ椂
+ exportOriginalHours: "/auxiliaryOriginalHours/exportOriginalHours", //瀵煎嚭鍘熷宸ユ椂
}
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index f712e9b..82e3105 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -281,6 +281,12 @@
v-model="addObj.remark" :readonly="active>1"></el-input>
</div>
</el-col>
+ <el-col class="search_thing" :span="6" v-if="active==1">
+ <div class="search_label">RTS锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="RTS"></el-input>
+ </div>
+ </el-col>
</el-row>
</div>
<div v-show="!configShow">
@@ -631,6 +637,8 @@
bsm1Val: null,
bsm1Dia: false,
total:0,
+ RTS:'',
+ totalArr:[]
}
},
watch: {
@@ -726,6 +734,37 @@
this.addObj.companyId = selects.id
this.selectUserDia = false
},
+ handleAsk(ask){
+ let code = [">","<","=","锛�","锛�","鈮�","鈮�","卤"];
+ if(ask.includes('RTS')){
+ if(ask.includes('&')){
+ // 澶氫釜鏉′欢
+ let arr0 = ask.split('&')
+ let arr1 = []
+ arr0.forEach(m=>{
+ let index = code.findIndex(b=>m.includes(b))
+ if(index>-1){
+ let arr = m.split(code[index]).filter(b=>!!b)
+ let num = eval(this.replaceAll(arr[0],'RTS', this.RTS))
+ m = code[index] + ''+ num
+ arr1.push(m)
+ }
+ })
+ return arr1.join('&')
+ }else{
+ // 鍗曚釜鏉′欢
+ let index = code.findIndex(b=>ask.includes(b))
+ if(index>-1){
+ let arr = ask.split(code[index]).filter(b=>!!b)
+ let num = eval(this.replaceAll(arr[0],'RTS', this.RTS))
+ return code[index] + ''+ num
+ }
+ }
+ }
+ },
+ replaceAll(str, find, replace) {
+ return str.replace(new RegExp(find, 'g'), replace);
+ },
save() {
if (!this.addObj.companyId) {
this.$message.error('鏈�夋嫨瀹㈡埛鍗曚綅')
@@ -749,11 +788,68 @@
this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�')
} else if (!this.sampleList.every(m => m.standardMethodListId)) {
this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�')
+ }else if (this.totalArr.find(a=>a.ask.includes('RTS'))&&!this.RTS) {
+ this.$message.error('璇疯緭鍏TS')
} else {
+ let sampleList = this.HaveJson(this.sampleList)
+ let isRTS = this.totalArr.find(a=>a.ask.includes('RTS'))
+ if(isRTS){
+ sampleList.forEach(item=>{
+ if(item.insProduct&&item.insProduct.length>0){
+ item.insProduct.forEach(a=>{
+ let ask = this.handleAsk(a.ask)
+ if(ask){
+ a.ask = ask
+ }
+ })
+ }
+ // 鍏夌氦甯﹂」鐩�
+ if(item.bushing&&item.bushing.length>0){
+ item.bushing.forEach(a=>{
+ if(a.fiber&&a.fiber.length>0){
+ a.fiber.forEach(b=>{
+ if(b.productList&&b.productList.length>0){
+ b.productList.forEach(c=>{
+ let ask = this.handleAsk(c.ask)
+ if(ask){
+ c.ask = ask
+ }
+ })
+ }
+ })
+ }
+ if(a.fibers&&a.fibers.length>0){
+ a.fibers.forEach(b=>{
+ if(b.productList&&b.productList.length>0){
+ b.productList.forEach(c=>{
+ let ask = this.handleAsk(c.ask)
+ if(ask){
+ c.ask = ask
+ }
+ })
+ }
+ if(b.fiber&&b.fiber.length>0){
+ b.fiber.forEach(c=>{
+ if(c.productList&&c.productList.length>0){
+ c.productList.forEach(d=>{
+ let ask = this.handleAsk(d.ask)
+ if(ask){
+ d.ask = ask
+ }
+ })
+ }
+ })
+ }
+ })
+ }
+ })
+ }
+ })
+ }
this.saveLoad = true
this.$axios.post(this.$api.insOrder.addInsOrder, {
insOrder: this.addObj,
- list: JSON.stringify(this.sampleList.map(a => {
+ list: JSON.stringify(sampleList.map(a => {
a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : (
'-' + a.modelNum))
return a
@@ -1352,12 +1448,12 @@
done()
},
getTotal(){
- let arr = []
+ this.totalArr = []
this.total = 0;
this.sampleList.forEach(item=>{
if(item.insProduct&&item.insProduct.length>0){
item.insProduct.forEach(a=>{
- arr.push(a)
+ this.totalArr.push(a)
})
}
if(item.bushing&&item.bushing.length>0){
@@ -1366,7 +1462,7 @@
a.fiber.forEach(b=>{
if(b.productList&&b.productList.length>0){
b.productList.forEach(c=>{
- arr.push(c)
+ this.totalArr.push(c)
})
}
})
@@ -1375,14 +1471,14 @@
a.fibers.forEach(b=>{
if(b.productList&&b.productList.length>0){
b.productList.forEach(c=>{
- arr.push(c)
+ this.totalArr.push(c)
})
}
if(b.fiber&&b.fiber.length>0){
b.fiber.forEach(c=>{
if(c.productList&&c.productList.length>0){
c.productList.forEach(d=>{
- arr.push(d)
+ this.totalArr.push(d)
})
}
})
@@ -1393,7 +1489,7 @@
}
})
let mySet = new Set();
- let arr0 = arr.filter(item=>{
+ let arr0 = this.totalArr.filter(item=>{
if(item.state == 1){
let num1= mySet.size
if(item.manHourGroup===''||!item.manHourGroup){
diff --git a/src/components/do/b1-ins-order/fiberoptic-config.vue b/src/components/do/b1-ins-order/fiberoptic-config.vue
index 4066118..c20a16e 100644
--- a/src/components/do/b1-ins-order/fiberoptic-config.vue
+++ b/src/components/do/b1-ins-order/fiberoptic-config.vue
@@ -289,7 +289,7 @@
}
})
this.models = this.models.replace(',', '')
- this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')))
+ this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1))
if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
this.bushing = []
}else{
diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue
index 13d3872..e245b0e 100644
--- a/src/components/do/b1-inspect-order-plan/Inspection.vue
+++ b/src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -320,6 +320,19 @@
</tbody>
</table>
</div>
+ <el-upload :action="action"
+ :data="{
+ orderId:id
+ }"
+ v-show="state==1"
+ :on-success="handleSuccessUp" :show-file-list="false"
+ accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload"
+ :on-error="onError" ref='upload'>
+ <el-button size="small" type="primary" :loading="upLoading">闄勪欢涓婁紶</el-button></el-upload>
+ <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
+ :componentData="componentData0"
+ :delUrl="$api.insOrderPlan.delfile"
+ :key="upIndex" style="height: 100%;margin-top: 16px;"/>
</div>
<el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
<el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border
@@ -422,6 +435,7 @@
<script>
import ValueTable from '../../tool/value-table.vue'
+ import file from '../../../util/file'
export default {
props: ['sonLaboratory', 'orderId', 'state'],
components: {
@@ -457,6 +471,53 @@
insState: {
select: []
},
+ },
+ currentId: '',
+ selectField: {},
+ requiredAdd: [],
+ requiredUp: []
+ },
+ componentData0: {
+ entity: {
+ insOrderId:''
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ selectMethod: '',
+ sort: false,
+ init:false,
+ do: [
+ {
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy',
+ disabFun: (row, index) => {
+ return this.state!=1
+ }
+ }, {
+ id: 'handleDown',
+ font: '涓嬭浇',
+ type: 'text',
+ method: 'handleDown'
+ },
+ ],
+ isPage: false,
+ linkEvent: {},
+ tagField: {
+ type:{
+ select:[
+ {
+ value: 1,
+ label: '鍥剧墖'
+ },
+ {
+ value: 2,
+ label: '鏂囦欢'
+ }
+ ]
+ }
},
currentId: '',
selectField: {},
@@ -499,8 +560,19 @@
currentFiberOptic:null,//褰撳墠鍏夌氦
currentBushing:null,//褰撳墠濂楃
tableLoading:false,
+ upLoading:false
}
},
+ computed: {
+ headers() {
+ return {
+ 'token': sessionStorage.getItem('token')
+ }
+ },
+ action() {
+ return this.javaApi + this.$api.insOrderPlan.uploadFile
+ }
+ },
created() {
this.componentData.entity.sonLaboratory = this.sonLaboratory;
this.id = this.orderId;
@@ -521,6 +593,8 @@
laboratory: this.sonLaboratory
}).then(async res => {
this.insOrder = res.data.insOrder;
+ this.componentData0.entity.insOrderId = val;
+ this.$refs.fileList.selectList()
this.urgentList.forEach(m => {
if (m.value == this.insOrder.type) {
this.insOrder.typeName = m.label
@@ -1414,20 +1488,67 @@
}
this.addVerifyDia = false
this.submitLoading = true;
- this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, {
orderId: this.orderId,
laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser
}).then(res => {
if (res.code === 200) {
- this.$message.success("鎿嶄綔鎴愬姛")
- this.$emit('goback')
+ console.log(res.data)
+ if(!res.data||res.data.length==0){
+ this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser
+ }).then(res => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛")
+ this.$emit('goback')
+ }
+ this.submitLoading = false;
+ }).catch(error => {
+ console.error(error)
+ this.submitLoading = false;
+ })
+ }else{
+ let newData = []
+ const h = this.$createElement
+ for (let i in res.data) {
+ const lastChar = res.data[i].slice(-1);
+ if(lastChar=='-'){
+ res.data[i] = res.data[i].slice(0, -1);
+ }
+ newData.push(h('p', {style: 'font-size: 12px;'}, (Number(i)+1)+'銆�'+res.data[i]))
+ }
+ newData.push(h('p', { style: 'font-size: 16px;color:#000;margin-top:12px' },'浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�'))
+ this.$confirm('鎻愮ず',{
+ title:'鎻愮ず',
+ message: h('div', null, newData),
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: ""
+ }).then(() => {
+ this.$axios.post(this.$api.insOrderPlan.submitPlan, {
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser
+ }).then(res => {
+ if (res.code === 200) {
+ this.$message.success("鎿嶄綔鎴愬姛")
+ this.$emit('goback')
+ }
+ }).catch(error => {
+ console.error(error)
+ })
+ }).catch(() => {})
+ }
+
}
this.submitLoading = false;
}).catch(error => {
console.error(error)
this.submitLoading = false;
})
+ return
},
saveInsContext() {
this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
@@ -1515,6 +1636,48 @@
}
})
this.getTableLists()
+ },
+ handleSuccessUp(response, ) {
+ this.upLoading = false;
+ if (response.code == 200) {
+ this.$message.success('涓婁紶鎴愬姛');
+ this.$refs.fileList.selectList()
+ }
+ },
+ beforeUpload(file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ this.upLoading = true;
+ return true;
+ }
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ handleDown(row){
+ this.$axios.post(this.$api.insOrderPlan.downFile, {
+ id: row.id,
+ }).then(res => {
+ if (res.code === 200) {
+ let url = '';
+ if(res.data.type==1){
+ url = this.javaApi+'/img/'+res.data.url
+ file.downloadIamge(url,row.fileName)
+ }else{
+ url = this.javaApi+'/word/'+res.data.url
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = row.fileName;
+ link.click();
+ }
+ }
+ }).catch(error => {
+
+ })
}
}
}
diff --git a/src/components/do/b3-work-time-management/work-time-management.vue b/src/components/do/b3-work-time-management/work-time-management.vue
index b36de84..86d3e07 100644
--- a/src/components/do/b3-work-time-management/work-time-management.vue
+++ b/src/components/do/b3-work-time-management/work-time-management.vue
@@ -333,6 +333,7 @@
requiredAdd: [],
requiredUp: []
},
+ addFileVisible:false,
entityCopy1: {},
upIndex1:100,
weekList:[
diff --git a/src/components/do/b3-work-time-management/work-time-statistics.vue b/src/components/do/b3-work-time-management/work-time-statistics.vue
index 8ffa444..380987a 100644
--- a/src/components/do/b3-work-time-management/work-time-statistics.vue
+++ b/src/components/do/b3-work-time-management/work-time-statistics.vue
@@ -10,7 +10,8 @@
format="yyyy-MM"
value-format="yyyy-MM"
placeholder="閫夋嫨鏈�" size="small" style="width: 100%;"
- :clearable="false">
+ :clearable="false"
+ @change="refreshTable()">
</el-date-picker>
</div>
</div>
@@ -39,8 +40,8 @@
<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
</div>
<div class="search_thing">
- <el-button size="small" type="primary" @click="handleDown" v-show="currentTable == 'value0'">瀵� 鍑�</el-button>
- <el-button size="small" type="primary" @click="handleUp" v-show="currentTable == 'value1'">瀵� 鍏�</el-button>
+ <el-button size="small" type="primary" @click="handleDown" v-show="currentTable == 'value0'" :loading="outLoading">瀵� 鍑�</el-button>
+ <el-button size="small" type="primary" @click="handleUp" v-show="currentTable == 'value1'">瀵� 鍏�</el-button>
</div>
</div>
<el-radio-group v-model="currentTable" size="small" :key="'111'" style="margin-top: 10px;">
@@ -55,7 +56,7 @@
<ValueTable ref="ValueTable0"
v-if="currentTable == 'value0'"
:url="$api.auxiliaryOriginalHours.selectAuxiliaryOriginalHours"
- :componentData="componentData" :downUrl="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :key="upIndex" />
+ :componentData="componentData" :key="upIndex" />
<ValueTable ref="ValueTable1"
v-if="currentTable == 'value1'"
:url="$api.auxiliaryCorrectionHours.selectAuxiliaryCorrectionHours"
@@ -130,7 +131,8 @@
upIndex1:100,
weekList:[],
personList:[],
- currentTable:'value0'
+ currentTable:'value0',
+ outLoading:false
}
},
mounted(){
@@ -185,7 +187,23 @@
})
},
handleDown(){
- this.$refs.ValueTable0.downFile(false)
+ // this.$refs.ValueTable0.downFile(false)
+ let entity = {...this.entity}
+ entity.month = entity.month.split('-')[0]+'-'+entity.month.split('-')[1]
+ this.outLoading = true
+ this.$axios.get(this.$api.auxiliaryOriginalHours.exportOriginalHours,{
+ params:entity,
+ },{responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/octet-stream' });
+ console.log(blob)
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = entity.month+'宸ユ椂缁熻琛�.xlsx';
+ link.click();
+ })
},
handleUp(){
this.$refs.ValueTable1.openUpload()
diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index a44150a..dfe4981 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -750,7 +750,7 @@
delete this.formData.updateTime
delete this.formData.createUser
delete this.formData.updateUser
- this.formData.insProductIds = this.formData.insProductIds.join()
+ this.formData.insProductIds = this.formData.insProductIds?this.formData.insProductIds.join():''
this.upLoad = true;
this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
headers: {
diff --git a/src/components/view/a6-external-personnel-management.vue b/src/components/view/a6-external-personnel-management.vue
new file mode 100644
index 0000000..bb062f6
--- /dev/null
+++ b/src/components/view/a6-external-personnel-management.vue
@@ -0,0 +1,126 @@
+<style scoped>
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ }
+ .search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ }
+ .search_label {
+ width: 80px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 120px);
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px);
+ padding: 20px;
+ }
+
+</style>
+<template>
+ <div class="below-standard-main">
+ <div style="width: 100%;height: 100%;">
+ <div>
+ <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px;">澶栨潵浜哄憳绠$悊</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+ <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">鏃ユ湡锛�</div>
+ <div class="search_input">
+ <el-date-picker
+ v-model="componentData.entity.sample"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="date"
+ size="small"
+ @change="refreshTable()"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+ :key="upIndex" />
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ import ValueTable from '../tool/value-table.vue'
+export default {
+ components: {
+ ValueTable,
+ },
+ data() {
+ return {
+ componentData: {
+ entity: {
+ sample: null,
+ model: null,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [],
+ tagField: [],
+ selectField: [],
+ requiredAdd: [],
+ requiredUp: []
+ },
+ entityCopy: {},
+ upIndex: 0,
+ stateList: [],
+ addPower:true,
+ }
+ },
+ mounted() {
+ this.entityCopy = this.HaveJson(this.componentData.entity)
+ this.getPower()
+ },
+ methods :{
+ refreshTable() {
+ this.$refs['ValueTable'].selectList()
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ },
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ },
+ }
+}
+</script>
diff --git a/src/components/view/a6-standard-material-list.vue b/src/components/view/a6-standard-material-list.vue
new file mode 100644
index 0000000..d5d3526
--- /dev/null
+++ b/src/components/view/a6-standard-material-list.vue
@@ -0,0 +1,138 @@
+<style scoped>
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ }
+ .search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ }
+ .search_label {
+ width: 120px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 120px);
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 40px);
+ padding: 20px;
+ }
+
+</style>
+<template>
+ <div class="below-standard-main">
+ <div style="width: 100%;height: 100%;">
+ <div>
+ <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px;">鏍囧噯鐗╄川娓呭崟</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+ <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">鍚嶇О锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.model"
+ @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鐢熶骇鍘傚锛�</div>
+ <div class="search_input">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.sample"
+ @keyup.enter.native="refreshTable()"></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+ :key="upIndex" />
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ import ValueTable from '../tool/value-table.vue'
+export default {
+ components: {
+ ValueTable,
+ },
+ data() {
+ return {
+ componentData: {
+ entity: {
+ sample: null,
+ model: null,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [
+ {
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'doDiy',
+ field:['createUserName','updateUserName']
+ },{
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }
+ ],
+ tagField: [],
+ selectField: [],
+ requiredAdd: ['model','sample',],
+ requiredUp: []
+ },
+ entityCopy: {},
+ upIndex: 0,
+ stateList: [],
+ addPower:true,
+ }
+ },
+ mounted() {
+ this.entityCopy = this.HaveJson(this.componentData.entity)
+ this.getPower()
+ },
+ methods :{
+ refreshTable() {
+ this.$refs['ValueTable'].selectList()
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ },
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ },
+ }
+}
+</script>
diff --git a/src/components/view/a6-waste-handover.vue b/src/components/view/a6-waste-handover.vue
new file mode 100644
index 0000000..0f996e3
--- /dev/null
+++ b/src/components/view/a6-waste-handover.vue
@@ -0,0 +1,272 @@
+<style scoped>
+ .title {
+ height: 60px;
+ line-height: 60px;
+ }
+
+ .search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ }
+ .search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ }
+ .search_label {
+ width: 100px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 120px);
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ padding: 20px;
+ }
+ .standard-main{
+ overflow-y: auto;
+ scrollbar-width: none;
+ }
+
+</style>
+<template>
+ <div class="standard-main">
+ <div style="width: 100%;height: 100%;">
+ <div>
+ <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px;">搴熺墿澶勭悊浜ゆ帴璁板綍</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+ <el-button size="medium" type="primary" @click="openAddDetail" v-if="addPower">鏂板鏄庣粏</el-button>
+ <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">鏃ユ湡锛�</div>
+ <div class="search_input">
+ <el-date-picker
+ v-model="componentData.entity.sample"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="date"
+ size="small"
+ @change="refreshTable()"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ </div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <el-table
+ :data="tableData"
+ style="width: 100%;margin-bottom: 10px;"
+ height="200px">
+ <el-table-column
+ prop="value0"
+ label="鏂囦欢缂栫爜"
+ width="180">
+ </el-table-column>
+ <el-table-column
+ prop="value1"
+ label="NO:"
+ width="180">
+ </el-table-column>
+ <el-table-column
+ prop="value2"
+ label="褰曞叆鏃ユ湡">
+ </el-table-column>
+ <el-table-column
+ prop="value3"
+ label="褰曞叆浜�">
+ </el-table-column>
+ <el-table-column
+ prop="value4"
+ label="鏇存柊浜�">
+ </el-table-column>
+ <el-table-column
+ prop="value5"
+ label="鏇存柊鏃堕棿">
+ </el-table-column>
+ </el-table>
+ <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+ :key="upIndex" style="height: 400px;" />
+ </div>
+ </div>
+ <el-dialog title="鏄庣粏鏂板" :visible.sync="addDetailVisible" width="400px">
+ <div class="body" style="max-height: 60vh;">
+ <el-row>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span class="required-span">* </span>鍚嶇О锛�</div>
+ <div class="search_input">
+ <el-input v-model="form.value0" size="small" placeholder="璇疯緭鍏�"></el-input>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label"><span class="required-span">* </span>浣撶Н锛�</div>
+ <div class="search_input">
+ <el-input v-model="form.value1" size="small" placeholder="璇疯緭鍏�"></el-input>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">閫佸鐞嗘棩鏈燂細</div>
+ <div class="search_input">
+ <el-date-picker
+ v-model="form.value2"
+ type="date"
+ size="small"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="閫夋嫨鏃ユ湡"
+ style="width: 100%;">
+ </el-date-picker>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">绉讳氦浜猴細</div>
+ <div class="search_input">
+ <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+ <el-option
+ v-for="item in personList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">鎺ユ敹浜猴細</div>
+ <div class="search_input">
+ <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+ <el-option
+ v-for="item in personList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </el-col>
+ <el-col class="search_thing" :span="22">
+ <div class="search_label">鎺ユ敹鍗曚綅锛�</div>
+ <div class="search_input">
+ <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+ <el-option
+ v-for="item in compList"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button>
+ <el-button type="primary" @click="addDetail" :loading="addDetailLoading">纭� 瀹�</el-button>
+ </el-row>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+ import ValueTable from '../tool/value-table.vue'
+export default {
+ components: {
+ ValueTable,
+ },
+ data() {
+ return {
+ componentData: {
+ entity: {
+ sample: null,
+ model: null,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [
+ {
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'doDiy',
+ field:['createUserName','updateUserName']
+ },{
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }
+ ],
+ tagField: [],
+ selectField: [],
+ requiredAdd: ['model','sample',],
+ requiredUp: []
+ },
+ tableData:[],
+ entityCopy: {},
+ upIndex: 0,
+ stateList: [],
+ addPower:true,
+ addDetailLoading:false,
+ addDetailVisible:false,
+ form:{},
+ personList:[],
+ compList:[]
+ }
+ },
+ mounted() {
+ this.entityCopy = this.HaveJson(this.componentData.entity)
+ this.getPower()
+ },
+ methods :{
+ refreshTable() {
+ this.$refs['ValueTable'].selectList()
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ },
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ },
+ openAddDetail(){
+ this.form = {}
+ this.addDetailVisible = true
+ },
+ addDetail(){
+ if(!this.form.value0){
+ this.$message.error('璇疯緭鍏ュ悕绉�')
+ return
+ }
+ if(!this.form.value0){
+ this.$message.error('浣撶Н')
+ return
+ }
+ this.addDetailLoading = true
+ }
+ }
+}
+</script>
diff --git a/src/components/view/person-manage.vue b/src/components/view/person-manage.vue
index 57075db..5c39a75 100644
--- a/src/components/view/person-manage.vue
+++ b/src/components/view/person-manage.vue
@@ -289,7 +289,7 @@
type: 'text',
method: 'doDiy',
field: ['roleName', '瑙掕壊=roleId', '瀵嗙爜=password',
- '濮撳悕EN=nameEn', '骞撮緞=age', '閭=email', '鍗曚綅=company', '绛惧悕=pictureUrl', '涓汉鐓х墖=signatureUrl'
+ '濮撳悕EN=nameEn', '骞撮緞=age', '閭=email', '鍗曚綅=company', '绛惧悕=signatureUrl', '涓汉鐓х墖=pictureUrl'
]
}],
tagField: {
diff --git a/src/main.js b/src/main.js
index 72b15e5..18e552a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -68,7 +68,11 @@
axios.interceptors.response.use(res => {
if(res.data.code === 201){
- Message.error(res.data.message)
+ Message({
+ type: 'error',
+ dangerouslyUseHTMLString: true,
+ message: `${res.data.message}`
+ })
}
return res.data
}, async function(err) {
diff --git a/src/util/file.js b/src/util/file.js
index 3757902..c3a3e7b 100644
--- a/src/util/file.js
+++ b/src/util/file.js
@@ -38,4 +38,24 @@
})
return await xhrPromise
},
+ downloadIamge(imgsrc, name) {//涓嬭浇鍥剧墖鍦板潃鍜屽浘鐗囧悕
+ var image = new Image();
+ // 瑙e喅璺ㄥ煙 Canvas 姹℃煋闂
+ image.setAttribute("crossOrigin", "anonymous");
+ image.onload = function() {
+ var canvas = document.createElement("canvas");
+ canvas.width = image.width;
+ canvas.height = image.height;
+ var context = canvas.getContext("2d");
+ context.drawImage(image, 0, 0, image.width, image.height);
+ var url = canvas.toDataURL("image/png"); //寰楀埌鍥剧墖鐨刡ase64缂栫爜鏁版嵁
+
+ var a = document.createElement("a"); // 鐢熸垚涓�涓猘鍏冪礌
+ var event = new MouseEvent("click"); // 鍒涘缓涓�涓崟鍑讳簨浠�
+ a.download = name || "photo"; // 璁剧疆鍥剧墖鍚嶇О
+ a.href = url; // 灏嗙敓鎴愮殑URL璁剧疆涓篴.href灞炴��
+ a.dispatchEvent(event); // 瑙﹀彂a鐨勫崟鍑讳簨浠�
+ };
+ image.src = imgsrc;
+ }
};
diff --git a/src/view/notice.vue b/src/view/notice.vue
index c4beade..00bc85e 100644
--- a/src/view/notice.vue
+++ b/src/view/notice.vue
@@ -11,9 +11,9 @@
class="notice-content-item"
v-for="(m,i) in list"
:key="i"
- :class="{readStyle:!m.viewStatus}"
+ :class="{readStyle:m.viewStatus}"
@click="goNoticeDetail(m)">
- <img :src="`../../static/img/notice-${m.viewStatus?0:1}-${m.messageType}.svg`" alt="" style="margin-right: 6px;">
+ <img :src="`../../static/img/notice-${m.viewStatus?1:0}-${m.messageType}.svg`" alt="" style="margin-right: 6px;">
<div class="notice-content-item-left">
<p>{{ m.theme }}</p>
<p style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
diff --git a/static/js/menu.js b/static/js/menu.js
index 9c1cba6..024fc74 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -368,7 +368,7 @@
}, {
v: "澶栨潵浜哄憳绠$悊",
i: "font icon-erjidaohang",
- u: "",
+ u: "a6-external-personnel-management",
g: "6.3 璁炬柦鍜岀幆澧冩潯浠�",
p: ""
}, {
@@ -404,7 +404,7 @@
}, {
v: "搴熺墿澶勭悊浜ゆ帴璁板綍",
i: "font icon-erjidaohang",
- u: "",
+ u: "a6-waste-handover",
g: "6.3 璁炬柦鍜岀幆澧冩潯浠�",
p: ""
}, {
@@ -500,7 +500,7 @@
}, {
v: "鏍囧噯鐗╄川娓呭崟",
i: "font icon-erjidaohang",
- u: "",
+ u: "a6-standard-material-list",
g: "6.5 璁¢噺婧簮鎬�",
p: ""
}, {
--
Gitblit v1.9.3