Merge remote-tracking branch 'origin/master'
| | |
| | | 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 = { |
| | |
| | | |
| | | const auxiliaryOriginalHours = { |
| | | selectAuxiliaryOriginalHours: "/auxiliaryOriginalHours/selectAuxiliaryOriginalHours", //æ¥è¯¢åå§å·¥æ¶ |
| | | exportOriginalHours: "/auxiliaryOriginalHours/exportOriginalHours", //导åºåå§å·¥æ¶ |
| | | } |
| | |
| | | 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"> |
| | |
| | | bsm1Val: null, |
| | | bsm1Dia: false, |
| | | total:0, |
| | | RTS:'', |
| | | totalArr:[] |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | 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('æªéæ©å®¢æ·åä½') |
| | |
| | | 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('请è¾å
¥RTS') |
| | | } 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 |
| | |
| | | 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){ |
| | |
| | | a.fiber.forEach(b=>{ |
| | | if(b.productList&&b.productList.length>0){ |
| | | b.productList.forEach(c=>{ |
| | | arr.push(c) |
| | | this.totalArr.push(c) |
| | | }) |
| | | } |
| | | }) |
| | |
| | | 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) |
| | | }) |
| | | } |
| | | }) |
| | |
| | | } |
| | | }) |
| | | 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){ |
| | |
| | | } |
| | | }) |
| | | 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{ |
| | |
| | | </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 |
| | |
| | | |
| | | <script> |
| | | import ValueTable from '../../tool/value-table.vue' |
| | | import file from '../../../util/file' |
| | | export default { |
| | | props: ['sonLaboratory', 'orderId', 'state'], |
| | | components: { |
| | |
| | | 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: {}, |
| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | } |
| | | 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, { |
| | |
| | | } |
| | | }) |
| | | 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 => { |
| | | |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | requiredAdd: [], |
| | | requiredUp: [] |
| | | }, |
| | | addFileVisible:false, |
| | | entityCopy1: {}, |
| | | upIndex1:100, |
| | | weekList:[ |
| | |
| | | format="yyyy-MM" |
| | | value-format="yyyy-MM" |
| | | placeholder="éæ©æ" size="small" style="width: 100%;" |
| | | :clearable="false"> |
| | | :clearable="false" |
| | | @change="refreshTable()"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | |
| | | <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;"> |
| | |
| | | <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" |
| | |
| | | upIndex1:100, |
| | | weekList:[], |
| | | personList:[], |
| | | currentTable:'value0' |
| | | currentTable:'value0', |
| | | outLoading:false |
| | | } |
| | | }, |
| | | mounted(){ |
| | |
| | | }) |
| | | }, |
| | | 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() |
| | |
| | | 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: { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | type: 'text', |
| | | method: 'doDiy', |
| | | field: ['roleName', 'è§è²=roleId', 'å¯ç =password', |
| | | 'å§åEN=nameEn', 'å¹´é¾=age', 'é®ç®±=email', 'åä½=company', 'ç¾å=pictureUrl', '个人ç
§ç=signatureUrl' |
| | | 'å§åEN=nameEn', 'å¹´é¾=age', 'é®ç®±=email', 'åä½=company', 'ç¾å=signatureUrl', '个人ç
§ç=pictureUrl' |
| | | ] |
| | | }], |
| | | tagField: { |
| | |
| | | |
| | | 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) { |
| | |
| | | }) |
| | | return await xhrPromise |
| | | }, |
| | | downloadIamge(imgsrc, name) {//ä¸è½½å¾çå°ååå¾çå |
| | | var image = new Image(); |
| | | // è§£å³è·¨å 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"); //å¾å°å¾ççbase64ç¼ç æ°æ® |
| | | |
| | | var a = document.createElement("a"); // çæä¸ä¸ªaå
ç´ |
| | | var event = new MouseEvent("click"); // å建ä¸ä¸ªåå»äºä»¶ |
| | | a.download = name || "photo"; // 设置å¾çåç§° |
| | | a.href = url; // å°çæçURL设置为a.href屿§ |
| | | a.dispatchEvent(event); // 触åaçåå»äºä»¶ |
| | | }; |
| | | image.src = imgsrc; |
| | | } |
| | | }; |
| | |
| | | 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;"> |
| | |
| | | }, { |
| | | v: "夿¥äººå管ç", |
| | | i: "font icon-erjidaohang", |
| | | u: "", |
| | | u: "a6-external-personnel-management", |
| | | g: "6.3 设æ½åç¯å¢æ¡ä»¶", |
| | | p: "" |
| | | }, { |
| | |
| | | }, { |
| | | v: "åºç©å¤ç交æ¥è®°å½", |
| | | i: "font icon-erjidaohang", |
| | | u: "", |
| | | u: "a6-waste-handover", |
| | | g: "6.3 设æ½åç¯å¢æ¡ä»¶", |
| | | p: "" |
| | | }, { |
| | |
| | | }, { |
| | | v: "æ åç©è´¨æ¸
å", |
| | | i: "font icon-erjidaohang", |
| | | u: "", |
| | | u: "a6-standard-material-list", |
| | | g: "6.5 è®¡éæº¯æºæ§", |
| | | p: "" |
| | | }, { |