| | |
| | | <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]" |
| | | :type="b.type" size="medium">{{b.label}}</el-tag> |
| | | </div> |
| | | <!-- 坿ä½è¡è¿è¡ç¹å»äºä»¶ --> |
| | | <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" @click="$emit(showLink(a.label, data.linkEvent),scope.row)">{{scope.row[a.label]}}</span> |
| | | <span v-else>{{scope.row[a.label]}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" align="center" label="æä½" :width="60 + data.do.length * 35" |
| | | <el-table-column fixed="right" align="center" label="æä½" :width="60 + data.do.length * 40" |
| | | v-if="data.do.length > 0"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type" |
| | |
| | | var str = ob[val] |
| | | return str == undefined ? null : ob[val].select |
| | | }, |
| | | showLink(val, ob){ |
| | | var str = ob[val] |
| | | return str == undefined ? null : ob[val].method |
| | | }, |
| | | showAddReq(label) { |
| | | if (this.data.requiredAdd == undefined) { |
| | | return |
| | |
| | | showSelect: false, |
| | | select: false, |
| | | do: [{ |
| | | id: 'details', |
| | | font: '详æ
', |
| | | type: 'text', |
| | | method: 'selectAllByOne' |
| | | }, { |
| | | id: 'delete', |
| | | font: 'å é¤', |
| | | type: 'text', |
| | |
| | | label: 'ä¿ä¿®' |
| | | }] |
| | | } |
| | | }, |
| | | linkEvent:{ |
| | | deviceName:{ |
| | | method:'selectAllByOne' |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'], |
| | |
| | | add = true |
| | | } |
| | | } |
| | | if(!del){ |
| | | if(!up){ |
| | | this.componentData.do.splice(1, 1) |
| | | } |
| | | if(!up){ |
| | | if(!del){ |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | |
| | | grid-template-columns: repeat(auto-fit, 375px); |
| | | /* justify-content: center; */ |
| | | grid-gap: 16px; |
| | | min-height: 300px; |
| | | } |
| | | .card li{ |
| | | width: 375px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 110px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 110px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | .tab{ |
| | | list-style-type: none; |
| | | display: flex; |
| | | margin-bottom: 12px; |
| | | } |
| | | .tab li{ |
| | | line-height: 24px; |
| | | padding: 6px 14px; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | border: 1px solid #EEEEEE; |
| | | cursor: pointer; |
| | | } |
| | | .tab li:nth-child(1){ |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | .tab li:nth-child(4){ |
| | | border-radius: 0 8px 8px 0; |
| | | } |
| | | .tab li.active{ |
| | | border-color: #3A7BFA; |
| | | color: #3A7BFA; |
| | | } |
| | | |
| | | .el-form-item{ |
| | | margin-bottom: 16px; |
| | | } |
| | | .picName{ |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | word-break: break-all; |
| | | width: 120px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="role_manage"> |
| | | <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="playOrder">ä¸å</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.deviceName" @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.specificationModel" @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"> |
| | | <ul class="tab"> |
| | | <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li> |
| | | </ul> |
| | | <!-- è¯æ³ åç»ä»¶éè¿ this.$emit +ä¼ å
¥æ¹æ³å è°ç¨ç¶ç»ä»¶æ¹æ³ ä¾å¦ this.$emitï¼selectAllByOneï¼ å°±éå¨ç¶ç»ä»¶å£°æå¹¶ä¼ å
¥ @selectAllByOne="selectAllByOne"--> |
| | | <ValueTable |
| | | ref="ValueTable" |
| | | :url="$api.deviceScope.selectDeviceParameter" |
| | | :componentData="componentData" |
| | | :key="upIndex" |
| | | style="height: calc(100% - 44px)" |
| | | @selectAllByOne="selectAllByOne" |
| | | @handleDataLook="handleDataLook" |
| | | @download="download" |
| | | @handleVerify="handleVerify" |
| | | @handlEquash="handlEquash" |
| | | @handleIssued="handleIssued" /> |
| | | </div> |
| | | <!-- å®¡æ ¸ --> |
| | | <el-dialog |
| | | title="ä¸åå®¡æ ¸" |
| | | :visible.sync="dialogVisible0" |
| | | width="30%" |
| | | :before-close="handleClose"> |
| | | <p style="font-size:16px;color:#333333">å§æç¼å·<span style="color:#34BD66">ZTMS2023071001</span>çä¿¡æ¯æ¯å¦éè¿</p> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isPass"> |
| | | <el-button @click="handleClose">é å</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">é è¿</el-button> |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">è¿ å</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from '../tool/value-table.vue' |
| | | export default { |
| | | components: { |
| | | ValueTable |
| | | }, |
| | | data() { |
| | | return { |
| | | //æ¯å¦éè¿ trueæ¯ false䏿¯ |
| | | isPass: true, |
| | | formData: {}, |
| | | value: '', |
| | | options: [], |
| | | labelPosition: 'right', |
| | | dialogVisible0: false, |
| | | componentData: { |
| | | entity: { |
| | | deviceStatus: null, |
| | | deviceName: null, |
| | | specificationModel: null, |
| | | largeCategory: null, |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | | } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [{ |
| | | id: 'details', |
| | | font: '详æ
', |
| | | type: 'text', |
| | | method: 'selectAllByOne' |
| | | }, { |
| | | id: 'dataLook', |
| | | font: 'æ°æ®æ¥ç', |
| | | type: 'text', |
| | | method: 'handleDataLook' |
| | | },{ |
| | | id: 'download', |
| | | font: 'æ¥åä¸è½½', |
| | | type: 'text', |
| | | method: 'download' |
| | | },{ |
| | | id: 'verify', |
| | | font: 'å®¡æ ¸', |
| | | type: 'text', |
| | | method: 'handleVerify' |
| | | },{ |
| | | id: 'quash', |
| | | font: 'æ¤é', |
| | | type: 'text', |
| | | method: 'handlEquash' |
| | | },{ |
| | | id: 'issued', |
| | | font: 'ä¸å', |
| | | type: 'text', |
| | | method: 'handleIssued' |
| | | }], |
| | | tagField: { |
| | | deviceStatus: { |
| | | select: [{ |
| | | value: 0, |
| | | type: 'success', |
| | | label: 'æ£å¸¸' |
| | | },{ |
| | | value: 1, |
| | | type: 'warning', |
| | | label: 'æ¥åº' |
| | | },{ |
| | | value: 2, |
| | | type: 'danger', |
| | | label: 'ä¿ä¿®' |
| | | }] |
| | | } |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'], |
| | | requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'] |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | | addDia: true, |
| | | addPower: true, |
| | | //设å¤ç±»åå表 |
| | | equipmentList:[], |
| | | // è´è´£äººå表 |
| | | responsiblePersonList:[], |
| | | // ææäººå表 |
| | | authorizerList:[], |
| | | // 设å¤ç¶æå表 |
| | | deviceStatusList:[], |
| | | upLoad:false, |
| | | tabList:[ |
| | | { |
| | | label:'æ£éªå¤ç', |
| | | value:0 |
| | | }, |
| | | { |
| | | label:'å¾
å®¡æ ¸', |
| | | value:1 |
| | | }, |
| | | { |
| | | label:'éå', |
| | | value:2 |
| | | }, |
| | | { |
| | | label:'æ¤é', |
| | | value:3 |
| | | }, |
| | | ], |
| | | tabIndex:0, |
| | | } |
| | | }, |
| | | 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')) |
| | | let up = false |
| | | let del = false |
| | | let add = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if(power[i].menuMethod=='upDeviceParameter'){ |
| | | up = true |
| | | } |
| | | if(power[i].menuMethod=='delDeviceParameter'){ |
| | | del = true |
| | | } |
| | | if(power[i].menuMethod=='addDeviceParameter'){ |
| | | add = true |
| | | } |
| | | } |
| | | if(!del){ |
| | | this.componentData.do.splice(1, 1) |
| | | } |
| | | if(!up){ |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | | }, |
| | | handleClose(){ |
| | | this.dialogVisible0 = false; |
| | | this.upLoad = false; |
| | | }, |
| | | // 详æ
|
| | | selectAllByOne(row){ |
| | | //æå¼å¼¹æ¡ |
| | | this.dialogVisible = true; |
| | | //row = ç¹å»å¯¹åºè¡å¼ |
| | | //å¤å¶ç»formData |
| | | this.formData=this.HaveJson(row); |
| | | }, |
| | | // æ°æ®æ¥ç |
| | | handleDataLook(row){}, |
| | | // ä¸è½½æ¥å |
| | | download(row){}, |
| | | // å®¡æ ¸ |
| | | handleVerify(row){ |
| | | this.dialogVisible0 = true; |
| | | }, |
| | | // æ¤é |
| | | handlEquash(row){}, |
| | | // ä¸å |
| | | handleIssued(row){}, |
| | | submitForm(){ |
| | | this.upLoad = true; |
| | | let authorizedPerson = this.formData.authorizedPerson.length>0?this.formData.authorizedPerson.join(','):'' |
| | | delete this.formData.createTime |
| | | delete this.formData.updateTime |
| | | delete this.formData.createUser |
| | | delete this.formData.updateUser |
| | | this.formData.authorizedPerson = authorizedPerson |
| | | this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | this.upLoad = false |
| | | return |
| | | } |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.upLoad = false |
| | | this.refreshTable() |
| | | this.dialogVisible = false |
| | | }).catch(e => { |
| | | this.$message.error('ä¿®æ¹å¤±è´¥') |
| | | this.dialogVisible = false |
| | | this.upLoad = false |
| | | }) |
| | | }, |
| | | // ä¸å |
| | | playOrder(){}, |
| | | handleTab(m,i){ |
| | | this.tabIndex = i; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | |
| | | //æ¬å° |
| | | Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; |
| | | const javaApi = 'http://127.0.0.1:8001'; |
| | | const javaApi = 'http://192.168.0.133:8003'; |
| | | //èäºæå¡å¨ |
| | | // Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn"; |
| | | // const javaApi = 'http://122.114.52.69:8001'; |
| | |
| | | const componentConfig = requireComponent(fileName); |
| | | comObj[names] = componentConfig.default || componentConfig; |
| | | }); |
| | | import menu from '../../static/js/menu.js'; |
| | | import menus from '../../static/js/menu.js' |
| | | import nullFace from '../view/404.vue' |
| | | comObj['nullFace'] = nullFace |
| | |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | </script> |
| | |
| | | c: [{ |
| | | v: "æ£éªä¸å", |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "", |
| | | u: "b1-inspection-order", |
| | | p: "" |
| | | }, { |
| | | v: "æ£éªä»»å¡", |