已删除5个文件
已修改20个文件
已添加96个文件
| | |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", |
| | | //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", |
| | | //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Linebox" > |
| | | <div class="card"> |
| | | <div class="card-header"> |
| | | <div id="lines2"> |
| | | <div class="card-body">{{ device.deviceName }}<br /> |
| | | -{{ device.childDeviceCode }}- |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card-body"> |
| | | <ul class="list-group lis"> |
| | | <li class="list-group-item list-group-item-dark">读åä¿¡å·</li> |
| | | <li class="list-group-item list-group-item-secondary">ä»»å¡å·ï¼{{ |
| | | device.data.command.taskNum }}</li> |
| | | <li class="list-group-item list-group-item-secondary">æçå·ï¼{{ |
| | | device.data.command.barcode }}</li> |
| | | <li class="list-group-item list-group-item-secondary">ç»ç¹å°åï¼{{ |
| | | device.data.command.targetAddress }}</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[6])">æ«ç ç«å°å
¥åºè¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[4])">å åæºåºåºç«å°è¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[2])">å åæºå
¥åºç«å°è¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[0])">线ä½åºåºå£è¯·æ±</li> |
| | | </ul> |
| | | <ul class="list-group lis"> |
| | | <li class="list-group-item list-group-item-dark">åå
¥ä¿¡å·</li> |
| | | <li class="list-group-item list-group-item-secondary">ä»»å¡å·ï¼{{ |
| | | device.data.commandWrite.taskNum }}</li> |
| | | <li class="list-group-item list-group-item-secondary">æçå·ï¼{{ |
| | | device.data.commandWrite.barcode }}</li> |
| | | <li class="list-group-item list-group-item-secondary">ç»ç¹å°åï¼{{ |
| | | device.data.commandWrite.targetAddress }}</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[7])">æ«ç ç«å°å
¥åºè¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[5])">å åæºåºåºç«å°è¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[3])">å åæºå
¥åºç«å°è¯·æ±</li> |
| | | <li :class="getSignalClass(device.data.writeInteractiveSignal[1])">线ä½åºåºå£è¯·æ±</li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { defineProps } from "vue"; |
| | | |
| | | // å®ä¹ç»ä»¶å±æ§ |
| | | const props = defineProps({ |
| | | device: { |
| | | type: Object, |
| | | required: true |
| | | } |
| | | }); |
| | | |
| | | // è·åä¿¡å·ç±»å |
| | | const getSignalClass = (signal) => { |
| | | // console.log("ð ~ getSignalClass ~ signal:", signal) |
| | | return signal !== true ? 'list-group-item list-group-item-danger' : 'list-group-item list-group-item-success'; |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* .Stackerbox{ |
| | | width: 220px; |
| | | float: left; |
| | | } */ |
| | | .Linebox{ |
| | | width: 500px; |
| | | float: left; |
| | | } |
| | | .box1{ |
| | | float: left; |
| | | } |
| | | .card-body{ |
| | | text-align: center; |
| | | border-radius: 6% ; |
| | | } |
| | | .Stacker{ |
| | | background-color: burlywood; |
| | | } |
| | | .lis{ |
| | | float: left; |
| | | width: 233px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Linebox"> |
| | | <div class="card"> |
| | | <div class="card-header"> |
| | | <div id="lines2" > |
| | | <div class="card-body">{{device.deviceName}}<br/> |
| | | -{{ device.data.childDeviceCode }}- |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card-body"> |
| | | <ul class="list-group lis"> |
| | | <li class="list-group-item list-group-item-dark">读åä¿¡å·</li> |
| | | <li class="list-group-item list-group-item-secondary">ä»»å¡å·ï¼{{ device.data.commandAfter.conveyorLineTaskNum }}</li> |
| | | <li class="list-group-item list-group-item-secondary">æçå·ï¼{{ device.data.commandAfter.conveyorLineBarcode }}</li> |
| | | <li class="list-group-item list-group-item-secondary">ç»ç¹å°åï¼{{ device.data.commandAfter.conveyorLineTargetAddress }}</li> |
| | | <li class="list-group-item list-group-item-secondary">æ¯å¦æçï¼{{ device.data.commandAfter.hasPallet }}</li> |
| | | <li class="list-group-item list-group-item-secondary">æ¥è¦ä»£ç ï¼{{ device.data.commandAfter.conveyorLineAlarm }}</li> |
| | | <li class="list-group-item list-group-item-secondary">请æ±åé¦ï¼{{ device.data.commandAfter.responState }}</li> |
| | | <li :class="device.data.commandAfter.interactiveSignal !=0 ? 'list-group-item list-group-item-success' :'list-group-item list-group-item-danger'">交äºä¿¡å·</li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { defineProps } from "vue"; |
| | | |
| | | // å®ä¹ç»ä»¶å±æ§ |
| | | const props = defineProps({ |
| | | device: { |
| | | type: Object, |
| | | required: true |
| | | } |
| | | }); |
| | | |
| | | // è·åä¿¡å·ç±»å |
| | | const getSignalClass = (signal) => { |
| | | // console.log("ð ~ getSignalClass ~ signal:", signal) |
| | | return signal !== true ? 'list-group-item list-group-item-danger' : 'list-group-item list-group-item-success'; |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .Stackerbox { |
| | | width: 220px; |
| | | float: left; |
| | | } |
| | | .Linebox { |
| | | width: 300px; |
| | | float: left; |
| | | } |
| | | .box1 { |
| | | float: left; |
| | | } |
| | | .card-body { |
| | | text-align: center; |
| | | border-radius: 6%; |
| | | } |
| | | .Stacker { |
| | | background-color: burlywood; |
| | | } |
| | | .lis { |
| | | float: left; |
| | | width: 266px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Stackerbox"> |
| | | <div class="card"> |
| | | <div class="card-header"> |
| | | <div> |
| | | <div class="card-body Stacker"> |
| | | {{ Stacker.deviceName }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card-body"> |
| | | <ul class="list-group"> |
| | | <li class="list-group-item list-group-item-secondary"> |
| | | ä»»å¡å·ï¼{{ Stacker.data.currentTaskNum || 'ææ ä»»å¡å·' }} |
| | | </li> |
| | | <li :class="getStatusClass(Stacker.data.stackerCraneAutoStatusDes)"> |
| | | 工使¨¡å¼ï¼{{ Stacker.data.stackerCraneAutoStatusDes }} |
| | | </li> |
| | | <li :class="getStatusClass(Stacker.data.stackerCraneStatusDes)"> |
| | | 设å¤ç¶æï¼{{ Stacker.data.stackerCraneStatusDes }} |
| | | </li> |
| | | <li :class="getStatusClass(Stacker.data.stackerCraneWorkStatusDes)"> |
| | | å·¥ä½ç¶æï¼{{ Stacker.data.stackerCraneWorkStatusDes }} |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { defineProps } from "vue"; |
| | | |
| | | // å®ä¹ç»ä»¶å±æ§ |
| | | const props = defineProps({ |
| | | Stacker: { |
| | | type: Object, |
| | | required: true |
| | | } |
| | | }); |
| | | |
| | | // è·åç¶æç±»åï¼ä¼åç¶æå¤æï¼ |
| | | const getStatusClass = (status) => { |
| | | if (status === 'æ£å¸¸' || status === 'èªå¨' || status === 'å¾
æº') { |
| | | return 'list-group-item list-group-item-success'; |
| | | } |
| | | if (status === 'æ
é' || status === 'åæº') { |
| | | return 'list-group-item list-group-item-danger'; |
| | | } |
| | | return 'list-group-item list-group-item-warning'; // é»è®¤è¦åç¶æ |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <vol-box |
| | | v-model="showDetialBox" |
| | | :lazy="true" |
| | | :width="width" |
| | | :padding="15" |
| | | title="è·¯ç±é
ç½®" |
| | | :footer="true" |
| | | > |
| | | <el-row height="50"> |
| | | <el-col :span="24"> |
| | | <div class="grid-content right-text"> |
| | | <!-- <el-link type="primary" @click="deleteNode">ç§»é¤èç¹</el-link> --> |
| | | <el-link type="primary" @click="addNode">æ·»å èç¹</el-link> |
| | | </div> |
| | | <div class="grid-content right-text"></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <div |
| | | class="grid-content" |
| | | style="font-weight: bold; font-size: 18px; margin-left: 5%" |
| | | > |
| | | <el-form :rules="routeTypeRules" :model="routerType"> |
| | | <el-form-item label="è·¯ç±ç±»å" label-width="120" prop="type"> |
| | | <el-select |
| | | v-model="routerType.type" |
| | | filterable |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in routerTypes" |
| | | :key="item.key" |
| | | :label="item.value" |
| | | :value="item.key" |
| | | > |
| | | <span style="float: left">{{ item.value }}</span> |
| | | <span |
| | | style="float: right; color: #8492a6; font-size: 13px" |
| | | >{{ item.key }}</span |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="overflow-x: auto"> |
| | | <el-row style="margin-top: 3%"> |
| | | <el-col :span="24"> |
| | | <el-steps align-center :active="routers.length"> |
| | | <el-step |
| | | v-for="(router, index) in routers" |
| | | :title="getTitle(index)" |
| | | :key="index" |
| | | icon="" |
| | | description="111" |
| | | style="min-width: 280px" |
| | | > |
| | | <template v-slot:description="{}"> |
| | | <div> |
| | | <el-form |
| | | :rules="rules" |
| | | class="demo-ruleForm" |
| | | :model="router" |
| | | label-width="110px" |
| | | style="margin-top: 1%" |
| | | ref="router" |
| | | > |
| | | <el-form-item |
| | | label="ä½ç½®ç¼å·" |
| | | placeholder="è¯·éæ©ä½ç½®ç¼å·" |
| | | prop="positionCode" |
| | | > |
| | | <el-select |
| | | filterable |
| | | v-model="router.positionCode" |
| | | @change="deviceCodeChange" |
| | | > |
| | | <el-option |
| | | v-for="deviceCode in filterDeviceCodes" |
| | | :key="deviceCode.key" |
| | | :label="deviceCode.key" |
| | | :value="deviceCode.key" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-show=" |
| | | index == routers.length - 1 && |
| | | !router.positionCode.includes('SC') |
| | | " |
| | | label="åä½ç½®ç¼å·" |
| | | prop="childPositionCode" |
| | | > |
| | | <el-select |
| | | filterable |
| | | v-model="router.childPositionCode" |
| | | @change="childDeviceCodeChange" |
| | | > |
| | | <el-option |
| | | v-for="childDeviceCode in filterChildDeviceCodes" |
| | | :key="childDeviceCode.key" |
| | | :label="childDeviceCode.key" |
| | | :value="childDeviceCode.key" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-show=" |
| | | router.positionCode.includes('SC') || |
| | | router.childPositionCode.includes('SC') |
| | | " |
| | | label="å åæºè¡" |
| | | prop="sCRow" |
| | | > |
| | | <el-input v-model="router.sCRow"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-show=" |
| | | router.positionCode.includes('SC') || |
| | | router.childPositionCode.includes('SC') |
| | | " |
| | | label="å åæºå" |
| | | prop="sCColumn" |
| | | > |
| | | <el-input v-model="router.sCColumn"></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-show=" |
| | | router.positionCode.includes('SC') || |
| | | router.childPositionCode.includes('SC') |
| | | " |
| | | label="å åæºå±" |
| | | prop="sCLayer" |
| | | > |
| | | <el-input v-model="router.sCLayer"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | </el-step> |
| | | </el-steps> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <template #footer> |
| | | <div> |
| | | <el-button plain type="danger" @click="save" |
| | | ><i class="el-icon-check"></i>ä¿ å</el-button |
| | | > |
| | | <el-button type="primary" size="mini" @click="showDetialBox = false" |
| | | ><i class="el-icon-close"></i>å
³é</el-button |
| | | > |
| | | </div> |
| | | </template> |
| | | </vol-box> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import VolBox from "@/components/basic/VolBox.vue"; |
| | | import { el } from "element-plus/es/locale"; |
| | | export default { |
| | | components: { VolBox }, |
| | | data() { |
| | | return { |
| | | width: 1200, |
| | | active: 0, |
| | | showDetialBox: false, |
| | | routerTypes: [], |
| | | routerType: { type: "" }, |
| | | deviceCodes: [], |
| | | filterDeviceCodes: [], |
| | | childDeviceCodes: [], |
| | | filterChildDeviceCodes: [], |
| | | routers: [ |
| | | { |
| | | positionCode: "", |
| | | childPositionCode: "", |
| | | sCRow: "", |
| | | sCColumn: "", |
| | | sCLayer: "", |
| | | }, |
| | | { |
| | | positionCode: "", |
| | | childPositionCode: "", |
| | | sCRow: "", |
| | | sCColumn: "", |
| | | sCLayer: "", |
| | | }, |
| | | ], |
| | | rules: { |
| | | positionCode: [ |
| | | { required: true, message: "è¯·éæ©ä½ç½®ç¼å·", trigger: "change" }, |
| | | ], |
| | | }, |
| | | routeTypeRules: { |
| | | type: [ |
| | | { required: true, message: "è¯·éæ©è·¯ç±ç±»å", trigger: "change" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | open() { |
| | | this.routerTypes = []; |
| | | this.routerType = { type: "" }; |
| | | this.deviceCode = ""; |
| | | this.deviceCodes = []; |
| | | this.filterDeviceCodes = []; |
| | | this.childDeviceCodes = []; |
| | | this.filterChildDeviceCodes = []; |
| | | this.routers = [ |
| | | { |
| | | positionCode: "", |
| | | childPositionCode: "", |
| | | sCRow: "", |
| | | sCColumn: "", |
| | | sCLayer: "", |
| | | }, |
| | | { |
| | | positionCode: "", |
| | | childPositionCode: "", |
| | | sCRow: "", |
| | | sCColumn: "", |
| | | sCLayer: "", |
| | | }, |
| | | ]; |
| | | this.showDetialBox = true; |
| | | this.getData(); |
| | | }, |
| | | getData() { |
| | | this.http.post("/api/Router/GetBaseRouterInfo", {}, true).then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.routerTypes = x.data.routerTypes; |
| | | this.deviceCodes = x.data.deviceCodes; |
| | | x.data.areaInfos.forEach((v) => { |
| | | this.deviceCodes.push(v); |
| | | }); |
| | | this.filterDeviceCodes = this.deviceCodes; |
| | | this.childDeviceCodes = this.deviceCodes; |
| | | this.filterChildDeviceCodes = this.deviceCodes; |
| | | }); |
| | | }, |
| | | addNode() { |
| | | this.routers.push({ |
| | | positionCode: "", |
| | | childPositionCode: "", |
| | | childPosiDeviceCode: "", |
| | | sCRow: "", |
| | | sCColumn: "", |
| | | sCLayer: "", |
| | | }); |
| | | }, |
| | | deleteNode() { |
| | | this.routers.splice(this.routers.length - 1, 1); |
| | | }, |
| | | getTitle(index) { |
| | | if (index === 0) { |
| | | return "èµ·ç¹"; |
| | | } else if (index === this.routers.length - 1) { |
| | | return "ç»ç¹"; |
| | | } else { |
| | | return "åèç¹" + index; |
| | | } |
| | | }, |
| | | save() { |
| | | this.$refs.router.forEach((x) => { |
| | | console.log(x); |
| | | x.validate((valid) => { |
| | | if (!valid) { |
| | | return false; |
| | | } |
| | | }); |
| | | }); |
| | | this.http |
| | | .post( |
| | | "/api/Router/AddRouters?routerType=" + this.routerType.type, |
| | | this.routers, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.success("æä½æå"); |
| | | this.$emit("parentCall", ($vue) => { |
| | | $vue.refresh(); |
| | | }); |
| | | this.showDetialBox = false; |
| | | }); |
| | | }, |
| | | deviceCodeChange(value) { |
| | | var positionCodes = []; |
| | | this.routers.forEach((x) => { |
| | | if (x.positionCode && x.positionCode != "") { |
| | | positionCodes.push(x.positionCode); |
| | | } |
| | | }); |
| | | this.filterDeviceCodes = this.deviceCodes.filter( |
| | | (x) => !positionCodes.includes(x.key) |
| | | ); |
| | | }, |
| | | childDeviceCodeChange(value) { |
| | | var positionCodes = []; |
| | | this.routers.forEach((x) => { |
| | | if (x.childPositionCode && x.childPositionCode != "") { |
| | | positionCodes.push(x.childPositionCode); |
| | | } |
| | | }); |
| | | this.filterChildDeviceCodes = this.childDeviceCodes.filter( |
| | | (x) => !positionCodes.includes(x.key) |
| | | ); |
| | | }, |
| | | }, |
| | | created() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-col { |
| | | border-radius: 4px; |
| | | } |
| | | .grid-content { |
| | | border-radius: 4px; |
| | | min-height: 36px; |
| | | } |
| | | .content-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .left-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-start; |
| | | } |
| | | .right-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | } |
| | | </style> |
| | | <style> |
| | | .el-step.is-center .el-step__description { |
| | | padding-left: 5%; |
| | | padding-right: 5%; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <vol-box |
| | | v-model="showDetialBox" |
| | | :lazy="true" |
| | | width="1200px" |
| | | :padding="15" |
| | | title="宿´è·¯ç±æ¥ç" |
| | | > |
| | | <div |
| | | style="margin-bottom: 1%" |
| | | v-for="(item, index) in routerDatas" |
| | | :key="index" |
| | | > |
| | | <el-row> |
| | | <el-col> |
| | | <div |
| | | class="grid-content right-text" |
| | | style="font-weight: bold; font-size: 18px" |
| | | > |
| | | <span>{{ item.type == "Out" ? "åºåºè·¯ç±" : "å
¥åºè·¯ç±" }}</span> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-steps :active="item.routes.length" align-center simple> |
| | | <el-step |
| | | v-for="itemRouter in item.routes" |
| | | :key="itemRouter" |
| | | :title="itemRouter" |
| | | icon="" |
| | | ></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </vol-box> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import VolBox from "@/components/basic/VolBox.vue"; |
| | | export default { |
| | | components: { VolBox }, |
| | | data() { |
| | | return { |
| | | active: 0, |
| | | showDetialBox: false, |
| | | routerDatas: [], |
| | | }; |
| | | }, |
| | | methods: { |
| | | open() { |
| | | this.showDetialBox = true; |
| | | this.getData(); |
| | | }, |
| | | getData() { |
| | | this.http.post("/api/Router/GetAllWholeRouters", {}, true).then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.routerDatas = x.data; |
| | | }); |
| | | }, |
| | | }, |
| | | created() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-col { |
| | | border-radius: 4px; |
| | | } |
| | | .grid-content { |
| | | border-radius: 4px; |
| | | min-height: 36px; |
| | | } |
| | | .content-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .left-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-start; |
| | | } |
| | | </style> |
| | | <style> |
| | | .el-table .warning-row { |
| | | background: #fcf1e2; |
| | | } |
| | | |
| | | .el-table .success-row { |
| | | background: #f0f9eb; |
| | | } |
| | | |
| | | .el-table .error-row { |
| | | background: #fde2e2; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <vol-box |
| | | v-model="showDetialBox" |
| | | :lazy="true" |
| | | :height="350" |
| | | :width="600" |
| | | :padding="15" |
| | | title="设å¤å议信æ¯-导å
¥" |
| | | > |
| | | <upload-excel |
| | | ref="upload_excel" |
| | | :url="url" |
| | | :template="template" |
| | | ></upload-excel> |
| | | </vol-box> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import VolBox from "@/components/basic/VolBox.vue"; |
| | | import UploadExcel from "@/components/basic/UploadExcel.vue"; |
| | | export default { |
| | | components: { VolBox, UploadExcel }, |
| | | data() { |
| | | return { |
| | | showDetialBox: false, |
| | | url: "", |
| | | template: { |
| | | url: "", //模æ¿ä¸è½½è·¯å¾ï¼å¦ææ²¡ææ¨¡æ¿è·¯å¾ï¼å䏿¾ç¤ºä¸è½½æ¨¡æ¿åè½ |
| | | fileName: "设å¤å议信æ¯å¯¼å
¥æ¨¡æ¿", //ä¸è½½æ¨¡æ¿çæä»¶å |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | open() { |
| | | this.template.url = `${this.http.ipAddress}api/DeviceProtocol/DownLoadTemplate`; |
| | | this.url = `${this.http.ipAddress}api/DeviceProtocol/GetImportData`; |
| | | this.showDetialBox = true; |
| | | this.$nextTick(() => { |
| | | this.$refs.upload_excel.upload = this.upload; |
| | | console.log(this.$refs.upload_excel); |
| | | }); |
| | | }, |
| | | upload() { |
| | | console.log("upload"); |
| | | let _url = this.url; |
| | | if (!_url) { |
| | | return this.$Message.error("没æé
置好Url"); |
| | | } |
| | | |
| | | if (!this.$refs.upload_excel.file) { |
| | | return this.$Message.error("è¯·éæ©æä»¶"); |
| | | } |
| | | var formData = new FormData(); |
| | | formData.append("fileInput", this.$refs.upload_excel.file); |
| | | if (!this.$refs.upload_excel.importExcelBefore(formData)) { |
| | | return; |
| | | } |
| | | this.$refs.upload_excel.loadingStatus = true; |
| | | this.http.post(_url, formData).then( |
| | | (x) => { |
| | | // this.$refs.uploadFile.clearFiles(); |
| | | this.$refs.upload_excel.loadingStatus = false; |
| | | this.$refs.upload_excel.file = null; |
| | | if (x.status) { |
| | | this.$emit("parentCall", ($vue) => { |
| | | $vue.$refs.detail.rowData.push(...x.data); |
| | | }); |
| | | } |
| | | |
| | | this.message = x.message; |
| | | this.resultClass = x.status ? "v-r-success" : "v-r-error"; |
| | | }, |
| | | (error) => { |
| | | this.$refs.upload_excel.loadingStatus = false; |
| | | } |
| | | ); |
| | | }, |
| | | }, |
| | | created() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-col { |
| | | border-radius: 4px; |
| | | } |
| | | .grid-content { |
| | | border-radius: 4px; |
| | | min-height: 36px; |
| | | } |
| | | .content-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .left-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-start; |
| | | } |
| | | </style> |
| | | <style> |
| | | .el-table .warning-row { |
| | | background: #fcf1e2; |
| | | } |
| | | |
| | | .el-table .success-row { |
| | | background: #f0f9eb; |
| | | } |
| | | |
| | | .el-table .error-row { |
| | | background: #fde2e2; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <vol-box |
| | | v-model="showDetialBox" |
| | | :lazy="true" |
| | | width="1200px" |
| | | :padding="15" |
| | | title="ä»»å¡è¯¦æ
" |
| | | > |
| | | <el-row height="50"> |
| | | <el-col :span="24"> |
| | | <div class="grid-content right-text"> |
| | | <el-link type="primary" @click="switchView">忢è§å¾</el-link> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div :style="{ height: height }"> |
| | | <div v-if="viewType == 1"> |
| | | <el-row height="50"> |
| | | <el-col :span="8"> |
| | | <div |
| | | class="grid-content content-text" |
| | | style="font-weight: bold; font-size: 18px" |
| | | > |
| | | <span>ä»»å¡ç¼å·ï¼{{ row.taskNum }}</span> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div |
| | | class="grid-content content-text" |
| | | style="font-weight: bold; font-size: 18px" |
| | | > |
| | | <span>æçç¼å·ï¼{{ row.palletCode }}</span> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div |
| | | class="grid-content content-text" |
| | | style="font-weight: bold; font-size: 18px" |
| | | > |
| | | <span>ä»»å¡ç¶æï¼{{ row.taskState }}</span> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="height: 100px; margin-top: 3%"> |
| | | <el-steps :active="active" align-center finish-status="success"> |
| | | <el-step |
| | | v-for="item in steps" |
| | | :key="item.title" |
| | | :title="item.title" |
| | | :description="item.description" |
| | | ></el-step> |
| | | </el-steps> |
| | | </div> |
| | | <el-row height="50" v-show="previousShow || nextShow"> |
| | | <el-col :span="8"> |
| | | <div v-show="previousShow" class="grid-content content-text"> |
| | | <el-button type="danger" @click="previous" |
| | | >åæ»å°ä¸ä¸æ¥</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div v-show="recoveryShow" class="grid-content content-text"> |
| | | <el-button type="primary" @click="recovery">ä»»å¡æèµ·æ¢å¤</el-button> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div v-show="nextShow" class="grid-content content-text"> |
| | | <el-button type="warning" @click="next">跳转å°ä¸ä¸æ¥</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div v-else> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | :row-class-name="tableRowClassName" |
| | | > |
| | | <el-table-column type="index" width="50"> </el-table-column> |
| | | <el-table-column prop="taskNum" label="ä»»å¡å·" width="90"> |
| | | </el-table-column> |
| | | <el-table-column prop="taskState" label="ä»»å¡ç¶æ" width="90"> |
| | | </el-table-column> |
| | | <el-table-column prop="currentAddress" label="å½åä½ç½®" width="90"> |
| | | </el-table-column> |
| | | <el-table-column prop="nextAddress" label="ä¸ä¸ä½ç½®" width="90"> |
| | | </el-table-column> |
| | | <el-table-column prop="isManual" label="æ¯å¦äººå·¥æä½" width="120"> |
| | | </el-table-column> |
| | | <el-table-column prop="isNormal" label="æ¯å¦æ£å¸¸" width="90"> |
| | | </el-table-column> |
| | | <el-table-column prop="description" label="æè¿°"> </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" width="180"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </vol-box> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import VolBox from "@/components/basic/VolBox.vue"; |
| | | export default { |
| | | components: { VolBox }, |
| | | data() { |
| | | return { |
| | | active: 0, |
| | | showDetialBox: false, |
| | | row: {}, |
| | | steps: [], |
| | | viewType: 1, |
| | | height: "200px", |
| | | tableData: [], |
| | | previousShow: false, |
| | | nextShow: false, |
| | | recoveryShow: true, |
| | | }; |
| | | }, |
| | | methods: { |
| | | open(row) { |
| | | this.row = row; |
| | | this.showDetialBox = true; |
| | | if (this.viewType == 1) { |
| | | this.getSteps(); |
| | | } else { |
| | | this.getDetailDatas(); |
| | | } |
| | | |
| | | this.$emit("parentCall", ($vue) => { |
| | | var previousButton = $vue.buttons.find((x) => x.value == "Previous"); |
| | | this.previousShow = previousButton != null; |
| | | |
| | | var nextButton = $vue.buttons.find((x) => x.value == "Next"); |
| | | this.nextShow = nextButton != null; |
| | | }); |
| | | }, |
| | | getSteps() { |
| | | this.http |
| | | .post( |
| | | "/api/TaskExecuteDetail/GetDetailInfo?taskNum=" + this.row.taskNum, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.steps = x.data.list; |
| | | this.active = x.data.active; |
| | | }); |
| | | }, |
| | | getDetailDatas() { |
| | | this.http |
| | | .post( |
| | | "/api/TaskExecuteDetail/GetDetailDatas?taskNum=" + this.row.taskNum, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.tableData = x.data; |
| | | }); |
| | | }, |
| | | previous() { |
| | | this.http |
| | | .post( |
| | | "/api/Task/RollbackTaskStatusToLast?taskNum=" + this.row.taskNum, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.success("æä½æå"); |
| | | this.getSteps(); |
| | | }); |
| | | }, |
| | | recovery(){ |
| | | this.http |
| | | .post( |
| | | "/api/Task/TaskStatusRecovery?taskNum=" + this.row.taskNum, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.success("æä½æå"); |
| | | this.getSteps(); |
| | | }); |
| | | }, |
| | | next() { |
| | | this.http |
| | | .post( |
| | | "/api/Task/UpdateTaskStatusToNext?taskNum=" + this.row.taskNum, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.success("æä½æå"); |
| | | this.getSteps(); |
| | | }); |
| | | }, |
| | | switchView() { |
| | | this.viewType = this.viewType == 1 ? 2 : 1; |
| | | if (this.viewType == 2) { |
| | | this.height = "600px"; |
| | | this.getDetailDatas(); |
| | | } else { |
| | | this.height = "200px"; |
| | | } |
| | | }, |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (!row.isNormal) { |
| | | return "error-row"; |
| | | } else if (row.isManual) { |
| | | return "warning-row"; |
| | | } |
| | | return "success-row"; |
| | | }, |
| | | }, |
| | | created() {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .el-col { |
| | | border-radius: 4px; |
| | | } |
| | | .grid-content { |
| | | border-radius: 4px; |
| | | min-height: 36px; |
| | | } |
| | | .content-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .right-text { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | } |
| | | </style> |
| | | <style> |
| | | .el-table .warning-row { |
| | | background: #fcf1e2; |
| | | } |
| | | |
| | | .el-table .success-row { |
| | | background: #f0f9eb; |
| | | } |
| | | |
| | | .el-table .error-row { |
| | | background: #fde2e2; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | console.log(eventData) |
| | | if (eventData.deviceName === "éåå
¥åºè¾é线" || eventData.deviceName === "éåå
¥åºè¾é线") { |
| | | |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName.indexOf("éå") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | .Stackerbox { |
| | | width: 220px; |
| | | float: left; |
| | | } |
| | | |
| | | .Linebox { |
| | | width: 500px; |
| | | float: left; |
| | | } |
| | | |
| | | .box1 { |
| | | float: left; |
| | | } |
| | | |
| | | .card-body { |
| | | text-align: center; |
| | | border-radius: 6%; |
| | | } |
| | | |
| | | .Stacker { |
| | | background-color: burlywood; |
| | | } |
| | | |
| | | .lis { |
| | | float: left; |
| | | width: 233px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | if (eventData.deviceName === "åæå
¥åºè¾é线") { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | console.log(eventData) |
| | | if (eventData.deviceName === "éç½®è¾é线") { |
| | | |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName.indexOf("éç½®") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | </script> |
| | | <style scoped> |
| | | .Stackerbox { |
| | | width: 220px; |
| | | float: left; |
| | | } |
| | | |
| | | .Linebox { |
| | | width: 500px; |
| | | float: left; |
| | | } |
| | | |
| | | .box1 { |
| | | float: left; |
| | | } |
| | | |
| | | .card-body { |
| | | text-align: center; |
| | | border-radius: 6%; |
| | | } |
| | | |
| | | .Stacker { |
| | | background-color: burlywood; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <device-line v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { onMounted, reactive, toRefs } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLine from "@/components/DeviceLine.vue"; |
| | | |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | |
| | | const intToBitArrayFromBinaryString = (num, numBits) => { |
| | | let binaryString = num.toString(2).padStart(numBits, '0'); |
| | | return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1'); |
| | | }; |
| | | |
| | | // çå¬è®¾å¤æ°æ®åå |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | if (eventData.deviceName === "äºå°è¾é线") { |
| | | |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode) |
| | | if (device) { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | device.data = eventData.data |
| | | } |
| | | else { |
| | | const number = eventData.data.commandWrite.writeInteractiveSignal; |
| | | const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8) |
| | | eventData.data.writeInteractiveSignal = writeInteractiveSignal; |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | <script setup> |
| | | import { onMounted, ref, reactive, toRaw } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLineVo from "@/components/DeviceLineVo.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | if (eventData.deviceName.indexOf("å容") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if (device) { |
| | | device.data = eventData.data |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | // if (eventData.deviceName == "å容3å·å åæº"||eventData.deviceName == "å容2å·å åæº") { |
| | | console.log(eventData.deviceName) |
| | | if (eventData.deviceName.indexOf("å容") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="21"> |
| | | <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | <script setup> |
| | | import { onMounted, ref, reactive, toRaw } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLineVo from "@/components/DeviceLineVo.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i=0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName === "å
è£
åºåºè¾é线") { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if(device){ |
| | | device.data = eventData.data |
| | | }else{ |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | }) |
| | | |
| | | }) |
| | | |
| | | </script> |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | <script setup> |
| | | import { onMounted, ref, reactive, toRaw } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLineVo from "@/components/DeviceLineVo.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | // console.log(eventData) |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName.indexOf("èå") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if (device) { |
| | | device.data = eventData.data |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName.indexOf("èå") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="3"> |
| | | <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker> |
| | | </el-col> |
| | | <el-col :span="21"> |
| | | <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" /> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | <script setup> |
| | | import { onMounted, ref, reactive, toRaw } from "vue"; |
| | | import eventBus from "@/uitils/eventBus"; |
| | | import DeviceLineVo from "@/components/DeviceLineVo.vue"; |
| | | import DeviceStacker from "@/components/DeviceStacker.vue"; |
| | | // å åæº |
| | | const Stackers = reactive([]); |
| | | var i = 0; |
| | | // 设å¤å表ï¼ä¿®æ¹éå¤è®¾å¤åç§°ï¼ |
| | | const devices = reactive([]); |
| | | const num = reactive([]) |
| | | onMounted(() => { |
| | | eventBus.on('locationData', eventData => { |
| | | // console.log(eventData) |
| | | |
| | | console.log(eventData) |
| | | |
| | | if (eventData.deviceName.indexOf("常温") != -1) { |
| | | if (devices.length <= 0) { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | else { |
| | | const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode) |
| | | if (device) { |
| | | device.data = eventData.data |
| | | } else { |
| | | devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | }) |
| | | eventBus.on('stackerData', eventData => { |
| | | if (eventData.deviceName.indexOf("常温") != -1) { |
| | | if (Stackers.length == 0) { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | else { |
| | | const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName); |
| | | if (Stacker) { |
| | | Stacker.data = eventData.data |
| | | } |
| | | else { |
| | | Stackers.push({ deviceName: eventData.deviceName, data: eventData.data }); |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | | <style scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | |
| | | <!--导èªåº --> |
| | | <div class="nav-bar"> |
| | | <RouterLink class="navlink" to="/AgingLibrary" >éååº</RouterLink> |
| | | <RouterLink class="navlink" to="/FormationLibrary" >åæåº</RouterLink> |
| | | <RouterLink class="navlink" to="/StaticLibrary" >éç½®åº</RouterLink> |
| | | <RouterLink class="navlink" to="/Twoletters" >äºå°</RouterLink> |
| | | <RouterLink class="navlink" to="/Volume" >å容åº</RouterLink> |
| | | <RouterLink class="navlink" to="/highTemperature" >èååº</RouterLink> |
| | | <RouterLink class="navlink" to="/roomTemperature" >常温åº</RouterLink> |
| | | <RouterLink class="navlink" to="/Baozhuang" >å
è£
</RouterLink> |
| | | </div> |
| | | <!--注æäºé¡¹--> |
| | | <div class="area"> |
| | | <RouterView :key="$route.fullPath" ></RouterView> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { RouterView,RouterLink } from 'vue-router'; |
| | | |
| | | </script> |
| | | <style> |
| | | .nav-bar { |
| | | display: flex; |
| | | justify-content: space-around; |
| | | align-items: center; |
| | | height: 50px; |
| | | background-color: #f5f5f5; |
| | | border-bottom: 1px solid #ccc; |
| | | } |
| | | .navlink { |
| | | width: 100px; |
| | | height: 100%; |
| | | text-decoration:none; |
| | | text-align: center; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | |
| | | color: rgb(0, 195, 255); |
| | | } |
| | | .navlink:hover{ |
| | | background-color: rgb(0, 195, 255); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | *Authorï¼jxx |
| | | *Contactï¼283591387@qq.com |
| | | *代ç ç±æ¡æ¶çæ,任使´æ¹é½å¯è½å¯¼è´è¢«ä»£ç çæå¨è¦ç |
| | | *ä¸å¡è¯·å¨@/extension/widesea_wms/basicinfo/Dt_AreaInfo.jsæ¤å¤ç¼å |
| | | --> |
| | | <template> |
| | | <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions" |
| | | :table="table" :extend="extend"> |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/basicinfo/Dt_needBarcode.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: 'areaID', |
| | | footer: "Foots", |
| | | cnName: 'å¨éæ°æ®', |
| | | name: 'basicinfo/dt_needBarcode', |
| | | url: "/dt_needBarcode/", |
| | | sortName: "AreaCode" |
| | | }); |
| | | const editFormFields = ref({ |
| | | "id":"", |
| | | "toArea": "", |
| | | "fromArea": "", |
| | | "barcodeType": "", |
| | | "productLine": "", |
| | | "inLineNum": "", |
| | | "cacheNum":"" |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { "title": "å¨éæ°é", "field": "inLineNum", type: "text" }, |
| | | { "title": "å¯ç¼åæ°é", "field": "cacheNum", type: "text" }, |
| | | ] |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | "iD":"", |
| | | "toArea": "", |
| | | "fromArea": "", |
| | | "barcodeType": "", |
| | | "productLine": "", |
| | | "inLineNum": "", |
| | | "cacheNum":"" |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { "title": "ç®æ åºåº", "field": "toArea", type: "text" }, |
| | | { "title": "æ¥æºåºåº", "field": "fromArea", type: "text" }, |
| | | { "title": "æçç±»å", "field": "barcodeType", type: "text" }, |
| | | ], |
| | | [ |
| | | { "title": "æå±äº§çº¿", "field": "productLine", type: "text" }, |
| | | { "title": "å¨éæ°é", "field": "inLineNum", type: "text" }, |
| | | { "title": "å¯ç¼åæ°é", "field": "cacheNum", type: "text" }, |
| | | ] |
| | | ]); |
| | | const columns = ref([{ field: 'iD', title: '主é®', type: 'int', sort: true, hidden: true, width: 110, readonly: true, require: true, align: 'left' }, |
| | | { field: 'toArea', title: 'ç®æ åºåº', type: 'string', sort: true, width: 110, require: true, align: 'left', sort: true }, |
| | | { field: 'fromArea', title: 'æ¥æºåºåº', type: 'string', sort: true, width: 110, align: 'left' }, |
| | | { field: 'barcodeType', title: 'æçç±»å', type: 'string', sort: true, width: 110, align: 'left' }, |
| | | { field: 'productLine', title: 'æå±äº§çº¿', type: 'string', sort: true, width: 110, align: 'left',bind: { key: "ProductionLine", data: [] } }, |
| | | { field: 'inLineNum', title: 'å¨éæ°é', type: 'int', sort: true, width: 110, align: 'left' }, |
| | | { field: 'cacheNum', title: 'å¯ç¼åæ°é', type: 'int', sort: true, width: 100, align: 'left' }, |
| | | { field: 'creater', title: 'å建人', type: 'string', sort: true, width: 110, align: 'left' }, |
| | | { field: 'createDate', title: 'å建æ¶é´', type: 'datetime', sort: true, width: 150, align: 'left', sort: true }, |
| | | { field: 'modifier', title: 'ä¿®æ¹äºº', type: 'string', sort: true, width: 100, align: 'left' }, |
| | | { field: 'modifyDate', title: 'ä¿®æ¹æ¶é´', type: 'datetime', sort: true, width: 150, align: 'left', sort: true }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "#detailCnName", |
| | | table: "#detailTable", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "" |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/basicinfo/router.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "è·¯ç±é
置信æ¯", |
| | | name: "router", |
| | | url: "/Router/", |
| | | sortName: "createDate", |
| | | }); |
| | | const editFormFields = ref({ |
| | | // name: "", |
| | | // jobGroup: "", |
| | | // assemblyName: "", |
| | | // className: "", |
| | | // intervalSecond: "", |
| | | // beginTime: "", |
| | | // endTime: "", |
| | | // remark: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | // [ |
| | | // { |
| | | // title: "ä»»å¡åç§°", |
| | | // required: true, |
| | | // field: "name", |
| | | // type: "string", |
| | | // }, |
| | | // { |
| | | // title: "ä»»å¡åç»", |
| | | // required: true, |
| | | // field: "jobGroup", |
| | | // type: "select", |
| | | // dataKey: "deviceType", |
| | | // data: [], |
| | | // }, |
| | | // { |
| | | // title: "ç¨åºéåç§°", |
| | | // required: true, |
| | | // field: "assemblyName", |
| | | // type: "string", |
| | | // type: "select", |
| | | // dataKey: "jobAssembly", |
| | | // data: [], |
| | | // }, |
| | | // { |
| | | // title: "任塿å¨ç±»", |
| | | // required: true, |
| | | // field: "className", |
| | | // type: "string", |
| | | // type: "select", |
| | | // dataKey: "jobClassName", |
| | | // data: [], |
| | | // }, |
| | | // ], |
| | | // [ |
| | | // { |
| | | // title: "é´éæ¶é´", |
| | | // required: true, |
| | | // field: "intervalSecond", |
| | | // type: "number", |
| | | // }, |
| | | // { |
| | | // title: "å¼å§æ¶é´", |
| | | // field: "beginTime", |
| | | // type: "datetime", |
| | | // }, |
| | | // { |
| | | // title: "ç»ææ¶é´", |
| | | // field: "endTime", |
| | | // type: "datetime", |
| | | // }, |
| | | // { |
| | | // title: "夿³¨", |
| | | // field: "remark", |
| | | // type: "string", |
| | | // }, |
| | | // ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | startPosi: "", |
| | | nextPosi: "", |
| | | // assemblyName: "", |
| | | // className: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "èµ·ç¹ä½ç½®", |
| | | field: "startPosi", |
| | | type: "like", |
| | | }, |
| | | { |
| | | title: "ç»ç¹ä½ç½®", |
| | | field: "nextPosi", |
| | | type: "like", |
| | | }, |
| | | // { |
| | | // title: "ç¨åºéåç§°", |
| | | // field: "assemblyName", |
| | | // type: "like", |
| | | // }, |
| | | // { |
| | | // title: "任塿å¨ç±»", |
| | | // field: "className", |
| | | // type: "like", |
| | | // }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "startPosi", |
| | | title: "èµ·ç¹ä½ç½®", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "nextPosi", |
| | | title: "ç»ç¹ä½ç½®", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "inOutType", |
| | | title: "è·¯ç±ç±»å", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "childPosi", |
| | | title: "åä½ç½®", |
| | | type: "string", |
| | | width: 200, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "childPosiDeviceCode", |
| | | title: "åä½ç½®æå±è®¾å¤", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "srmRow", |
| | | title: "å åæºåè´§/æ¾è´§è¡", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "srmColumn", |
| | | title: "å åæºåè´§/æ¾è´§å", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "srmLayer", |
| | | title: "å åæºåè´§/æ¾è´§å±", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "depth", |
| | | title: "深度", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "isEnd", |
| | | title: "æ¯å¦æ¯æç»ç¹", |
| | | type: "bool", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "remark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="builder-container"> |
| | | <vol-box |
| | | ref="add" |
| | | :width="850" |
| | | :height="450" |
| | | title="æ°å»ºé
置信æ¯" |
| | | padding="10px" |
| | | v-model="addModel" |
| | | > |
| | | <div style="padding: 30px 30px 10px 34px"> |
| | | <el-alert type="warning" :closable="false"> |
| | | 1ãå¦æåªæ¯å建ç®å½ï¼ç¶çº§idå¡«0,å
¶ä»é便填å; |
| | | <br /> |
| | | 2ã妿æ¯çæä»£ç ï¼ç¶çº§idå¡«åã代ç çæé
ç½®ãå表页é¢çid |
| | | </el-alert> |
| | | </div> |
| | | <div class="addModel" style="padding-right: 30px"> |
| | | <vol-form |
| | | ref="addForm" |
| | | :formRules="addOptions" |
| | | :formFields="layOutOptins.fields" |
| | | > |
| | | </vol-form> |
| | | </div> |
| | | <template #footer> |
| | | <div> |
| | | <el-button type="primary" size="small" @click="add" |
| | | ><i class="el-icon-plus"></i> ç¡® å®</el-button |
| | | > |
| | | </div> |
| | | </template> |
| | | </vol-box> |
| | | <div class="builder-left"> |
| | | <div class="module-name">代ç çæé
ç½®</div> |
| | | <div class="builder-tree"> |
| | | <el-scrollbar style="height: 100%; width: 200px"> |
| | | <!-- :onOpenChange="onOpenChange" --> |
| | | <VolMenu :list="tree" :onSelect="onSelect"></VolMenu> |
| | | </el-scrollbar> |
| | | </div> |
| | | </div> |
| | | <div class="builder-content"> |
| | | <div style="height: 100%"> |
| | | <el-scrollbar style="height: 100%"> |
| | | <div class="coder-container"> |
| | | <div class="coder-item" style="padding-top: 7px"> |
| | | <VolHeader icon="ios-chatbubbles" text="代ç çæå¨"> |
| | | <template #content> |
| | | <div style="color: red; font-size: 13px"> |
| | | å é¤å·¦ä¾§é
ç½®èå:å é¤è¡->ä¿å->å é¤èå |
| | | </div> |
| | | </template> |
| | | <div class="action"> |
| | | <span @click="save"> <i class="el-icon-check"></i>ä¿å </span> |
| | | <span @click="addVisible()"> |
| | | <i class="el-icon-plus"></i>æ°å»º |
| | | </span> |
| | | <span @click="ceateVuePage(0)"> |
| | | <i class="el-icon-document"></i>çæVueé¡µé¢ |
| | | </span> |
| | | <!-- <span @click="ceateVuePage(1)"> |
| | | <i class="el-icon-document"></i>çæappé¡µé¢ |
| | | </span> --> |
| | | <span @click="ceateModel"> |
| | | <i class="el-icon-tickets"></i>çæModel |
| | | </span> |
| | | <span @click="createService"> |
| | | <i class="el-icon-document"></i>çæä¸å¡ç±» |
| | | </span> |
| | | <span @click="delTree"> |
| | | <i class="el-icon-delete"></i>å é¤èå |
| | | </span> |
| | | </div> |
| | | </VolHeader> |
| | | <div class="config"> |
| | | <vol-form |
| | | :label-width="90" |
| | | ref="form" |
| | | :formRules="layOutOptins.options" |
| | | :formFields="layOutOptins.fields" |
| | | ></vol-form> |
| | | </div> |
| | | </div> |
| | | <el-alert type="warning" :closable="false"> |
| | | 1ã妿éè¦ä¿®æ¹è¡¨ç»æï¼è¯·å¨æ°æ®åºä¿®æ¹ï¼åç¹åæ¥è¡¨ç»æ->çævue页é¢->çæmodelã |
| | | 2ãä¿®æ¹ç¼è¾è¡åéè¦ç¹å»çæmodelãçævueé¡µé¢ |
| | | </el-alert> |
| | | <div class="coder-item"> |
| | | <VolHeader |
| | | icon="md-podium" |
| | | style="border-bottom: 0" |
| | | text="è¡¨ç»æ" |
| | | > |
| | | <template #content> |
| | | <div style="color: red; font-size: 13px"> |
| | | æ°æ®åºè¡¨ç»æåçååæ¶è¯·ç¹ãåæ¥è¡¨ç»æã |
| | | </div></template |
| | | > |
| | | |
| | | <div class="action"> |
| | | <span |
| | | style="color: rgb(23, 156, 216)" |
| | | class="ivu-icon ivu-icon-ios-folder" |
| | | @click="help" |
| | | >代ç çæå¨åæ°ææ¡£</span |
| | | > |
| | | <span @click="delRow" class="ivu-icon ivu-icon-md-close" |
| | | >å é¤è¡æ°æ®</span |
| | | > |
| | | <span @click="syncTable" class="ivu-icon ivu-icon-md-sync" |
| | | >åæ¥è¡¨ç»æ</span |
| | | > |
| | | </div> |
| | | </VolHeader> |
| | | |
| | | <div class="grid-container" style="padding-bottom: 20px"> |
| | | <vol-table |
| | | ref="table" |
| | | :paginationHide="true" |
| | | :tableData="data" |
| | | :height="tableHeight" |
| | | :columns="layOutOptins.columns" |
| | | :color="false" |
| | | :index="true" |
| | | :allowEmpty="true" |
| | | :clickEdit="true" |
| | | ></vol-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-scrollbar> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import builderData from './builderData'; |
| | | import VolForm from '@/components/basic/VolForm.vue'; |
| | | import VolTable from '@/components/basic/VolTable.vue'; |
| | | import VolBox from '@/components/basic/VolBox.vue'; |
| | | import VolHeader from '@/components/basic/VolHeader.vue'; |
| | | import VolMenu from '@/components/basic/VolElementMenu.vue'; |
| | | export default { |
| | | components: { |
| | | VolForm: VolForm, |
| | | VolTable: VolTable, |
| | | VolBox: VolBox, |
| | | VolHeader: VolHeader, |
| | | VolMenu |
| | | }, |
| | | data() { |
| | | return { |
| | | more: { |
| | | addChild: 'addChild', |
| | | ceateController: 'ceateController', |
| | | addRow: 'addRow', |
| | | delRow: 'delRow', |
| | | delTree: 'delTree' |
| | | }, |
| | | addModel: false, |
| | | helpModel: false, |
| | | tableHeight: 500, |
| | | addOptions: builderData.form.addOptions, |
| | | layOutOptins: { |
| | | fields: builderData.form.fields, |
| | | options: builderData.form.options, |
| | | columns: builderData.columns |
| | | }, |
| | | tableInfo: null, |
| | | data: [], |
| | | tree: [] |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'layOutOptins.fields.vuePath'(val) { |
| | | localStorage.setItem('vuePath', val); |
| | | }, |
| | | deep: true |
| | | //localStorage.setItem("vuePath", this.layOutOptins.fields.vuePath || ""); |
| | | }, |
| | | methods: { |
| | | changeMore(funName) { |
| | | this[funName](); |
| | | }, |
| | | help() { |
| | | window.open('http://v2.volcore.xyz/document/coder'); |
| | | // this.helpModel = true; |
| | | }, |
| | | addVisible(pid) { |
| | | this.addModel = true; |
| | | this.$refs.form.reset(); |
| | | this.data.splice(0); |
| | | if (pid) { |
| | | this.layOutOptins.fields.parentId = pid; |
| | | } |
| | | }, |
| | | delTree() { |
| | | let tableId = this.layOutOptins.fields.table_Id; |
| | | if (!tableId) return this.$message.error('è¯·éæ©èç¹'); |
| | | let tigger = false; |
| | | this.$confirm('å é¤è¦å?', '确认è¦å é¤å', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | center: true |
| | | }).then(() => { |
| | | if (tigger) return; |
| | | tigger = true; |
| | | this.http |
| | | .post('/api/builder/delTree?table_Id=' + tableId, {}, true) |
| | | .then((x) => { |
| | | if (!x.status) return this.$message.error(x.message); |
| | | this.$message.error('å 餿å,è¯·å·æ°é¡µé¢'); |
| | | // for (let index = 0; index < this.tree.length; index++) { |
| | | // if (this.tree[index].id == tableId) { |
| | | // this.tree.splice(index, 1); |
| | | // } |
| | | // } |
| | | }); |
| | | }); |
| | | }, |
| | | add() { |
| | | this.$refs.form.validate(() => { |
| | | // this.layOutOptins.fields.tableName = |
| | | // this.layOutOptins.fields.tableName.slice(0, 1).toUpperCase() + |
| | | // this.layOutOptins.fields.tableName.slice(1); |
| | | if (!this.layOutOptins.fields.tableTrueName) { |
| | | this.layOutOptins.fields.tableTrueName = this.layOutOptins.fields.tableName; |
| | | } |
| | | |
| | | let queryParam = |
| | | 'parentId=' + |
| | | this.layOutOptins.fields.parentId + |
| | | '&tableName=' + |
| | | this.layOutOptins.fields.tableName + |
| | | '&columnCNName=' + |
| | | this.layOutOptins.fields.columnCNName + |
| | | '&nameSpace=' + |
| | | this.layOutOptins.fields.namespace + |
| | | '&foldername=' + |
| | | this.layOutOptins.fields.folderName + |
| | | '&isTreeLoad=false'; |
| | | this.http |
| | | .post('/api/builder/LoadTableInfo?' + queryParam, {}, true) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | this.$message.error(x.message); |
| | | return; |
| | | } |
| | | let hasTree = this.tree.some((t) => { |
| | | return t.id == x.data.table_Id; |
| | | }); |
| | | if (!hasTree) { |
| | | this.tree.push({ |
| | | id: x.data.table_Id, |
| | | pId: x.data.parentId, |
| | | parentId: x.data.parentId, |
| | | name: x.data.columnCNName, |
| | | orderNo: x.data.orderNo |
| | | }); |
| | | } |
| | | if (!x.data.tableTrueName) { |
| | | x.data.tableTrueName = x.data.tableName; |
| | | } |
| | | this.addModel = false; |
| | | this.tableInfo = x.data; |
| | | this.$refs.form.reset(x.data); |
| | | this.data = x.data.tableColumns; |
| | | }); |
| | | }); |
| | | }, |
| | | addChild() { |
| | | // this.$message.info("å¼åä¸"); |
| | | let id = this.layOutOptins.fields.table_Id; |
| | | if (!id) { |
| | | return this.$message.error('请éä¸èç¹'); |
| | | } |
| | | this.addVisible(id); |
| | | }, |
| | | addRow() { |
| | | this.data.push({}); |
| | | }, |
| | | delRow() { |
| | | let tigger = false; |
| | | this.$confirm('å é¤è¦å?', '确认è¦å é¤éæ©çæ°æ®å', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | center: true |
| | | }).then(() => { |
| | | if (tigger) return; |
| | | tigger = true; |
| | | this.$refs.table.delRow(); |
| | | }); |
| | | }, |
| | | validateTableInfo(callback) { |
| | | this.$refs.form.validate(() => { |
| | | if (!this.tableInfo) { |
| | | this.$message.error('请å
å è½½æ°æ®'); |
| | | return false; |
| | | } |
| | | if (this.data && this.data.length > 0) { |
| | | let keyInfo = this.data.find((x) => { |
| | | return x.isKey; |
| | | }); |
| | | if (!keyInfo) { |
| | | this.$message.error('请å¾é设置主é®'); |
| | | return false; |
| | | } |
| | | if (keyInfo.isNull == 1) { |
| | | this.$message.error('主é®ãå¯ä¸ºç©ºãå¿
须设置为å¦'); |
| | | return false; |
| | | } |
| | | if ( |
| | | keyInfo.columnType != 'int' && |
| | | keyInfo.columnType != 'bigint' && |
| | | !this.layOutOptins.fields.sortName |
| | | ) { |
| | | this.$message.error('主é®éèªå¢ç±»å,请设置ä¸é¢è¡¨åçãæåºå段ã'); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | for (const key in this.tableInfo) { |
| | | if (this.layOutOptins.fields.hasOwnProperty(key)) { |
| | | let newVal = this.layOutOptins.fields[key]; |
| | | this.tableInfo[key] = newVal; |
| | | } |
| | | } |
| | | callback(); |
| | | }); |
| | | }, |
| | | ceateVuePage(isApp) { |
| | | this.validateTableInfo(() => { |
| | | let vuePath; |
| | | if (!isApp) { |
| | | vuePath = localStorage.getItem('vuePath'); |
| | | if (!vuePath) { |
| | | return this.$message.error( |
| | | '请å
设置Vue项ç®å¯¹åºViewsçç»å¯¹è·¯å¾,ç¶ååä¿å!' |
| | | ); |
| | | } |
| | | } else { |
| | | vuePath = localStorage.getItem('appPath'); |
| | | if (!vuePath) { |
| | | return this.$message.error('请å
设置appè·¯å¾,ç¶ååä¿å!'); |
| | | } |
| | | } |
| | | |
| | | let url = `/api/builder/createVuePage?vuePath=${vuePath}&v3=1&app=${isApp || |
| | | 0}`; |
| | | this.http.post(url, this.tableInfo, true).then((x) => { |
| | | this.$Message.info(x); |
| | | }); |
| | | }); |
| | | }, |
| | | createService() { |
| | | this.validateTableInfo(() => { |
| | | let queryParam = |
| | | 'tableName=' + |
| | | this.layOutOptins.fields.tableName + |
| | | '&nameSpace=' + |
| | | this.layOutOptins.fields.namespace + |
| | | '&foldername=' + |
| | | this.layOutOptins.fields.folderName; |
| | | this.http |
| | | .post( |
| | | '/api/builder/CreateServices?' + queryParam, |
| | | this.tableInfo, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | this.$Message.info(x); |
| | | }); |
| | | }); |
| | | }, |
| | | ceateModel() { |
| | | this.validateTableInfo(() => { |
| | | this.http |
| | | .post('/api/builder/CreateModel', this.tableInfo, true) |
| | | .then((x) => { |
| | | this.$message.info(x); |
| | | }); |
| | | }); |
| | | }, |
| | | syncTable() { |
| | | if (!this.layOutOptins.fields.tableName) |
| | | return this.$Message.error('è¯·éæ¨¡å'); |
| | | this.http |
| | | .post( |
| | | '/api/builder/syncTable?tableName=' + |
| | | this.layOutOptins.fields.tableName, |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.status) { |
| | | return this.$Message.error(x.message); |
| | | } |
| | | this.$Message.info(x.message); |
| | | this.loadTableInfo(this.layOutOptins.fields.table_Id); |
| | | }); |
| | | }, |
| | | ceateApiController() {}, |
| | | ceateController() {}, |
| | | checkSortName() {}, |
| | | save() { |
| | | localStorage.setItem('vuePath', this.layOutOptins.fields.vuePath || ''); |
| | | localStorage.setItem('appPath', this.layOutOptins.fields.appPath || ''); |
| | | |
| | | if ( |
| | | this.tableInfo && |
| | | this.tableInfo.tableColumns && |
| | | this.tableInfo.tableColumns.length && |
| | | this.tableInfo.tableColumns.filter((x) => { |
| | | return x.isKey == 1; |
| | | }).length > 1 |
| | | ) { |
| | | return this.$Message.error('è¡¨ç»æåªè½å¾éä¸ä¸ªä¸»é®å段'); |
| | | } |
| | | this.validateTableInfo(() => { |
| | | this.http.post('/api/builder/Save', this.tableInfo, true).then((x) => { |
| | | if (!x.status) { |
| | | this.$Message.error(x.message); |
| | | return; |
| | | } |
| | | this.$Message.info(x.message); |
| | | this.tree.forEach((x) => { |
| | | if (x.id == this.layOutOptins.fields.table_Id) { |
| | | x.name = this.layOutOptins.fields.columnCNName; |
| | | x.parentId = this.layOutOptins.fields.parentId; |
| | | } |
| | | }); |
| | | this.tableInfo = x.data; |
| | | x.data.vuePath = this.layOutOptins.fields.vuePath; |
| | | x.data.appPath = this.layOutOptins.fields.appPath; |
| | | this.$refs.form.reset(x.data); |
| | | // this.layOutOptins.fields.vuePath = localStorage.getItem("vuePath"); |
| | | this.data = x.data.tableColumns; |
| | | // this.$Message.info(x); |
| | | }); |
| | | }); |
| | | }, |
| | | onSelect(node) { |
| | | this.loadTableInfo(node); |
| | | }, |
| | | onOpenChange(node) { |
| | | if (node.length == 0) return; |
| | | this.loadTableInfo(node.length == 1 ? node[0] : node[node.length - 1]); |
| | | }, |
| | | loadTableInfo(id) { |
| | | // localStorage.setItem("vuePath", this.layOutOptins.fields.vuePath || ""); |
| | | this.http |
| | | .post( |
| | | '/api/builder/LoadTableInfo?table_Id=' + id + '&isTreeLoad=true', |
| | | {}, |
| | | true |
| | | ) |
| | | .then((x) => { |
| | | if (!x.data.tableTrueName) { |
| | | x.data.tableTrueName = x.data.tableName; |
| | | } |
| | | //2021.01.09å¢å 代ç çæå¨è®¾ç½®tableæåºåè½ |
| | | const _fields = [ |
| | | 'sortable', |
| | | 'isNull', |
| | | 'isReadDataset', |
| | | 'isColumnData', |
| | | 'isDisplay' |
| | | ]; |
| | | x.data.tableColumns.forEach((item) => { |
| | | for (let index = 0; index < _fields.length; index++) { |
| | | item[_fields[index]] = item[_fields[index]] || 0; |
| | | } |
| | | }); |
| | | this.tableInfo = x.data; |
| | | |
| | | this.$refs.form.reset(x.data); |
| | | this.data = x.data.tableColumns; |
| | | }); |
| | | }, |
| | | getVuePath(key) { |
| | | let vuePath = localStorage.getItem(key); |
| | | if (!vuePath || vuePath == 'null' || vuePath == 'undefined') { |
| | | vuePath = ''; |
| | | } |
| | | return vuePath; |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | created() { |
| | | let clientHeight = document.documentElement.clientHeight - 170; |
| | | this.tableHeight = clientHeight < 400 ? 400 : clientHeight; |
| | | this.http |
| | | .post('/api/Sys_Dictionary/GetBuilderDictionary', {}, true) |
| | | .then((dic) => { |
| | | let column = this.layOutOptins.columns.find((x) => { |
| | | return x.field == 'dropNo'; |
| | | }); |
| | | if (!column) return; |
| | | |
| | | let data = [{ key: '', value: '' }]; |
| | | for (let index = 0; index < dic.length; index++) { |
| | | data.push({ key: dic[index], value: dic[index] }); |
| | | } |
| | | |
| | | column.bind.data = data; |
| | | }); |
| | | |
| | | builderData.form.fields.vuePath = this.getVuePath('vuePath'); |
| | | builderData.form.fields.appPath = this.getVuePath('appPath'); |
| | | this.http.post('/api/builder/GetTableTree', {}, false).then((x) => { |
| | | this.tree = JSON.parse(x.list); |
| | | if (!x.nameSpace) { |
| | | return this.$message.error( |
| | | 'æªè·ååå°é¡¹ç®ç±»åºæå¨å½å空é´,请确认ç®å½æè°è¯Sys_TableInfoServiceç±»GetTableTreeæ¹æ³' |
| | | ); |
| | | } |
| | | let nameSpace = JSON.parse(x.nameSpace); |
| | | let nameSpaceArr = []; |
| | | for (let index = 0; index < nameSpace.length; index++) { |
| | | nameSpaceArr.push({ |
| | | key: nameSpace[index], |
| | | value: nameSpace[index] |
| | | }); |
| | | } |
| | | |
| | | //åå§å项ç®å½ä»¤ç©ºé´ |
| | | this.layOutOptins.options.forEach((option) => { |
| | | option.forEach((item) => { |
| | | if (item.field == 'namespace') { |
| | | item.data.push(...nameSpaceArr); |
| | | } |
| | | }); |
| | | }); |
| | | this.addOptions.forEach((option) => { |
| | | option.forEach((item) => { |
| | | if (item.field == 'namespace') { |
| | | item.data.push(...nameSpaceArr); |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | } |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .builder-tree { |
| | | position: absolute; |
| | | top: 41px; |
| | | bottom: 0; |
| | | } |
| | | .builder-tree >>> .ivu-menu { |
| | | text-align: left; |
| | | width: 200px !important; |
| | | } |
| | | .builder-container { |
| | | widows: 100%; |
| | | /* padding: 20px; */ |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 0; |
| | | right: 0; |
| | | display: inline-block; |
| | | bottom: 0; |
| | | } |
| | | .grid-container >>> tr:hover { |
| | | cursor: pointer; |
| | | } |
| | | .builder-left { |
| | | position: relative; |
| | | width: 201px; |
| | | height: 100%; |
| | | border-right: 2px solid #dcd6d6; |
| | | } |
| | | .builder-content { |
| | | position: absolute; |
| | | top: 0px; |
| | | left: 200px; |
| | | display: inline-block; |
| | | bottom: 0; |
| | | right: 0px; |
| | | } |
| | | .builder-content .ivu-alert { |
| | | position: relative; |
| | | display: flex; |
| | | padding: 12px 18px 12px 38px; |
| | | } |
| | | .builder-content .ivu-alert-icon { |
| | | top: 10px; |
| | | } |
| | | .builder-content .action { |
| | | text-align: right; |
| | | line-height: 33px; |
| | | padding-right: 26px; |
| | | } |
| | | .builder-content .action i { |
| | | top: 0px; |
| | | position: relative; |
| | | } |
| | | .builder-content .action > span { |
| | | padding: 0px 6px; |
| | | font-size: 12px; |
| | | letter-spacing: 1px; |
| | | color: #5a5f5e; |
| | | } |
| | | .builder-content .action > span:hover { |
| | | cursor: pointer; |
| | | color: black; |
| | | } |
| | | .builder-content .config { |
| | | /* border: 1px solid #e9e8e8; */ |
| | | padding: 15px 15px 0px 15px; |
| | | border-radius: 3px; |
| | | background: #ffffff; |
| | | margin-bottom: 10px; |
| | | } |
| | | .builder-container .config >>> .ivu-form > .ivu-form-item { |
| | | display: none; |
| | | } |
| | | .coder-container { |
| | | background: #eee; |
| | | } |
| | | .coder-container .coder-item { |
| | | background: white; |
| | | padding: 0px 15px; |
| | | } |
| | | .module-name { |
| | | color: #2d8cf0; |
| | | font-size: 13px; |
| | | line-height: 39px; |
| | | padding-left: 15px; |
| | | border: 1px solid #abdcff; |
| | | background-color: #f0faff; |
| | | } |
| | | .module-name >>> .ivu-alert-icon { |
| | | top: 12px; |
| | | } |
| | | .help { |
| | | margin-left: 15px; |
| | | top: 2px; |
| | | position: relative; |
| | | border-bottom: 1px solid; |
| | | } |
| | | .help:hover { |
| | | color: #f56c6c; |
| | | cursor: pointer; |
| | | } |
| | | .more { |
| | | text-align: left; |
| | | position: relative; |
| | | top: 2px; |
| | | } |
| | | .addModel { |
| | | padding: 10px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <div id="big-data-container" class="big-data-container"> |
| | | <div class="head"> |
| | | <h1>大屿°æ®ç»è®¡åææ¾ç¤º</h1> |
| | | </div> |
| | | <div class="data-container"> |
| | | <div class="data-left"> |
| | | <div class="data-left-item"> |
| | | <div class="title">ååééåç±»</div> |
| | | <div id="chart-vleft-1" style="height: calc(100% - 30px)"></div> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div class="data-left-item"> |
| | | <div class="title">æ¬æååéé</div> |
| | | <div id="chart-vleft-3" style="height: calc(100% - 30px)"></div> |
| | | |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div class="data-left-item"> |
| | | <div class="title">7æ¥è®¢åéé</div> |
| | | <div id="chart-vleft-2" style="height: calc(100% - 30px)"></div> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | </div> |
| | | <div class="data-center"> |
| | | <!-- <div class="title">ä¸é´ä½ç½®</div> --> |
| | | <div class="center-top-num"> |
| | | <div class="item"> |
| | | <div class="text">累计éé</div> |
| | | <div class="num">220,000</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="text">累计éå®éé¢</div> |
| | | <div class="num">58,000,000</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="text">è´ä¹°ç¨æ·äººæ°</div> |
| | | <div class="num">15,000</div> |
| | | </div> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div |
| | | class="center-top" |
| | | style="height: 260px; padding-top: 25px; overflow: hidden" |
| | | > |
| | | <!-- <div class="title">ç¨æ·æ´»è·ä¿¡æ¯-1</div> --> |
| | | <div id="chart-vgauge-1" style="height: 400px"></div> |
| | | <!-- <iview-circle :size="200" style="padding: 8px 0;"></iview-circle> --> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div class="title">订åéå®ç»è®¡</div> |
| | | <div id="chart-vcenter" style="height:400px;" class="chart-vcenter"></div> |
| | | </div> |
| | | <div class="data-right"> |
| | | <div class="data-right-item"> |
| | | <div class="title">é宿
åµèµ°å¿</div> |
| | | <div id="chart-vright-1" style="height: calc(100% - 30px)"></div> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div class="data-right-item" style="height: 220px; padding-top: 25px"> |
| | | <!-- <div class="title">ç¨æ·æ´»è·ä¿¡æ¯</div> --> |
| | | <!-- <iview-circle></iview-circle> --> |
| | | <div id="chart-vgauge-2" style="height: 300px"></div> |
| | | <div class="data-foot-line"></div> |
| | | </div> |
| | | <div class="data-right-item right-3"> |
| | | <div class="title">ååé宿è¡</div> |
| | | <div id="chart-vright-3" class="right-item"> |
| | | <div class="item"> |
| | | <div class="top">æå</div> |
| | | <div class="pro-name">åååç§°</div> |
| | | <div class="num">éé</div> |
| | | <div class="num">éå®éé¢</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="top top-1"> |
| | | <span>1</span> |
| | | </div> |
| | | <div class="pro-name">å¡å¸ä¹é³é±¼</div> |
| | | <div class="num">2,200</div> |
| | | <div class="num">360,00</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="top top-2"> |
| | | <span>2</span> |
| | | </div> |
| | | <div class="pro-name">æ¥å¤ç·Tæ¤</div> |
| | | <div class="num">1,700</div> |
| | | <div class="num">24,500</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="top top-3"> |
| | | <span>3</span> |
| | | </div> |
| | | <div class="pro-name">ç·å¥³å款ä¼é²é</div> |
| | | <div class="num">1,120</div> |
| | | <div class="num">12,700</div> |
| | | </div> |
| | | </div> |
| | | <div class="boxfoot"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | var echarts = require("echarts"); |
| | | let $chartLeft1, |
| | | $chartLeft2, |
| | | $chartLeft3, |
| | | $chartCenter, |
| | | $chartRight1, |
| | | $chartGauge1, |
| | | $chartGauge2; |
| | | import { |
| | | chartLeft1, |
| | | chartLeft2, |
| | | chartLeft3, |
| | | chartRight1, |
| | | gauge, |
| | | } from "./bigdata/chart-options"; |
| | | // import IviewCircle from "./bigdata/IviewCircle"; |
| | | import "./bigdata/layout.less"; |
| | | export default { |
| | | components: { |
| | | // "iview-circle": IviewCircle |
| | | }, |
| | | data() { |
| | | return {}; |
| | | }, |
| | | created() { |
| | | console.log("chart"); |
| | | }, |
| | | mounted() { |
| | | if ($chartLeft1) { |
| | | $chartLeft1.dispose(); |
| | | $chartLeft2.dispose(); |
| | | $chartLeft3.dispose(); |
| | | $chartCenter.dispose(); |
| | | $chartRight1.dispose(); |
| | | $chartGauge1.dispose(); |
| | | $chartGauge2.dispose(); |
| | | } |
| | | $chartLeft1 = echarts.init(document.getElementById("chart-vleft-1")); |
| | | $chartLeft1.setOption(chartLeft1, true); |
| | | |
| | | $chartLeft2 = echarts.init(document.getElementById("chart-vleft-2")); |
| | | $chartLeft2.setOption(chartLeft2, true); |
| | | |
| | | $chartLeft3 = echarts.init(document.getElementById("chart-vleft-3")); |
| | | $chartLeft3.setOption(chartLeft3, true); |
| | | |
| | | $chartCenter = echarts.init(document.getElementById("chart-vcenter")); |
| | | $chartCenter.setOption(chartRight1, true); |
| | | |
| | | $chartRight1 = echarts.init(document.getElementById("chart-vright-1")); |
| | | $chartRight1.setOption(chartRight1, true); |
| | | |
| | | $chartGauge1 = echarts.init(document.getElementById("chart-vgauge-1")); |
| | | $chartGauge1.setOption(gauge, true); |
| | | |
| | | $chartGauge2 = echarts.init(document.getElementById("chart-vgauge-2")); |
| | | $chartGauge2.setOption(gauge); |
| | | }, |
| | | destroyed() { |
| | | $chartLeft1 = null; |
| | | $chartLeft2 = null; |
| | | $chartLeft3 = null; |
| | | $chartCenter = null; |
| | | $chartRight1 = null; |
| | | $chartGauge1 = null; |
| | | $chartGauge2 = null; |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | /* .chart-center { |
| | | display: flex; |
| | | border: 1px solid #0000ff; |
| | | height: 200px; |
| | | flex-direction: column; |
| | | margin-top: 20px; |
| | | } |
| | | .chart-center .item { |
| | | text-align: center; |
| | | border: 1px solid #00c1b3; |
| | | flex: 1; |
| | | } */ |
| | | .right-3 { |
| | | display: flex; |
| | | flex-direction: column; |
| | | /* margin-top: 20px; */ |
| | | } |
| | | |
| | | .right-3 .right-item { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .right-3 .item { |
| | | text-align: left; |
| | | border-bottom: 1px solid #549069; |
| | | flex: 1; |
| | | display: flex; |
| | | padding: 5px 10px; |
| | | margin: 0 10px; |
| | | font-size: 14px; |
| | | line-height: 30px; |
| | | } |
| | | |
| | | .right-3 .item:last-child { |
| | | border-bottom: 0; |
| | | } |
| | | |
| | | .right-3 .item > div { |
| | | color: white; |
| | | } |
| | | |
| | | .right-3 .top { |
| | | width: 60px; |
| | | position: relative; |
| | | } |
| | | |
| | | .right-3 .top span { |
| | | position: absolute; |
| | | width: 20px; |
| | | line-height: 20px; |
| | | top: 5px; |
| | | text-align: center; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .right-3 .top-1 span { |
| | | background: #e80d0d; |
| | | } |
| | | |
| | | .right-3 .top-2 span { |
| | | background: #00c935; |
| | | } |
| | | |
| | | .right-3 .top-3 span { |
| | | background: #0083f4; |
| | | } |
| | | |
| | | .right-3 .num { |
| | | width: 88px; |
| | | } |
| | | |
| | | .right-3 .pro-name { |
| | | flex: 1; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="demo-Circle"> |
| | | <div style> |
| | | <i-circle |
| | | :size="size" |
| | | :trail-width="4" |
| | | :stroke-width="5" |
| | | :percent="75" |
| | | stroke-linecap="square" |
| | | stroke-color="#43a3fb" |
| | | > |
| | | <div class="demo-Circle-custom"> |
| | | <h1>1500</h1> |
| | | <p>æ¨æ¥æ´»è·ç¨æ·æ°é</p> |
| | | <span> |
| | | å æ¯ |
| | | <i>{{1500/20000}}%</i> |
| | | </span> |
| | | </div> |
| | | </i-circle> |
| | | </div> |
| | | <div style> |
| | | <i-circle |
| | | :size="size" |
| | | :trail-width="4" |
| | | :stroke-width="5" |
| | | :percent="75" |
| | | stroke-linecap="square" |
| | | stroke-color="#43a3fb" |
| | | > |
| | | <div class="demo-Circle-custom"> |
| | | <h1>12000</h1> |
| | | <p>ä¸ææ´»è·ç¨æ·æ°é</p> |
| | | <span> |
| | | å æ¯ |
| | | <i>{{12000/150000}}%</i> |
| | | </span> |
| | | </div> |
| | | </i-circle> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | props:{ |
| | | size:{ |
| | | type:Number, |
| | | default:150 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .demo-Circle { |
| | | display: flex; |
| | | } |
| | | .demo-Circle > div { |
| | | flex: 1; |
| | | text-align: center; |
| | | } |
| | | .demo-Circle > div:first-child{ |
| | | padding-left:10%; |
| | | } |
| | | |
| | | .demo-Circle > div:last-child{ |
| | | padding-right:10%; |
| | | } |
| | | </style> |
| | | <style lang="less" scoped> |
| | | .demo-Circle-custom { |
| | | & h1 { |
| | | color:#ffffff; |
| | | font-size: 28px; |
| | | font-weight: normal; |
| | | } |
| | | & p { |
| | | color: #ece8e8; |
| | | font-size: 14px; |
| | | margin: 10px 0 15px; |
| | | } |
| | | & span { |
| | | display: block; |
| | | padding-top: 15px; |
| | | color: wheat; |
| | | font-size: 14px; |
| | | &:before { |
| | | content: ""; |
| | | display: block; |
| | | width: 50px; |
| | | height: 1px; |
| | | margin: 0 auto; |
| | | background: #e0e3e6; |
| | | position: relative; |
| | | top: -15px; |
| | | } |
| | | } |
| | | & span i { |
| | | font-style: normal; |
| | | color: white; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | .big-data-container { |
| | | position: absolute; |
| | | overflow: hidden; |
| | | height: 100%; |
| | | width: 100%; |
| | | background-color: #1400a8; |
| | | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1200 800'%3E%3Cdefs%3E%3CradialGradient id='a' cx='0' cy='800' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%230e0077'/%3E%3Cstop offset='1' stop-color='%230e0077' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='b' cx='1200' cy='800' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%2314057c'/%3E%3Cstop offset='1' stop-color='%2314057c' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='600' cy='0' r='600' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%230d0524'/%3E%3Cstop offset='1' stop-color='%230d0524' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='d' cx='600' cy='800' r='600' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%231400a8'/%3E%3Cstop offset='1' stop-color='%231400a8' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='e' cx='0' cy='0' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23000000'/%3E%3Cstop offset='1' stop-color='%23000000' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='f' cx='1200' cy='0' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23130733'/%3E%3Cstop offset='1' stop-color='%23130733' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect fill='url(%23a)' width='1200' height='800'/%3E%3Crect fill='url(%23b)' width='1200' height='800'/%3E%3Crect fill='url(%23c)' width='1200' height='800'/%3E%3Crect fill='url(%23d)' width='1200' height='800'/%3E%3Crect fill='url(%23e)' width='1200' height='800'/%3E%3Crect fill='url(%23f)' width='1200' height='800'/%3E%3C/svg%3E"); |
| | | background-attachment: fixed; |
| | | background-size: cover; |
| | | .head { |
| | | height: 75px; |
| | | /* height: 1.05rem; */ |
| | | background: url(./head_bg.png) no-repeat center center; |
| | | background-size: 100% 100%; |
| | | position: relative; |
| | | z-index: 100; |
| | | } |
| | | } |
| | | |
| | | .head h1 { |
| | | margin: 0; |
| | | color: #fff; |
| | | text-align: center; |
| | | /* font-size: .4rem; */ |
| | | /* line-height: .8rem; */ |
| | | line-height: 71px; |
| | | } |
| | | |
| | | .data-container { |
| | | /* margin: 5px 15px; |
| | | height:100%; */ |
| | | |
| | | margin: 0px 15px; |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | top: 76px; |
| | | bottom: 0; |
| | | } |
| | | |
| | | .data-container > div { |
| | | float: left; |
| | | /* border: 1px solid white; */ |
| | | height: 100%; |
| | | } |
| | | |
| | | .data-center { |
| | | padding: 0 0.9rem; |
| | | width: 40%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | // .center-top{ |
| | | // height: 210px; |
| | | // background: red; |
| | | // } |
| | | .chart-center{ |
| | | flex: 1; |
| | | } |
| | | } |
| | | .chart-center{ |
| | | width: 100%; |
| | | display: flex; |
| | | // background: white; |
| | | } |
| | | .data-left, |
| | | .data-right { |
| | | width: 30%; |
| | | display: flex; |
| | | |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .data-left-item, |
| | | .data-right-item,.center-top,.center-top-num,.chart-center { |
| | | border: 1px solid rgba(25, 186, 139, 0.17); |
| | | padding: 0 0.2rem 0.4rem 0.15rem; |
| | | background: rgba(255, 255, 255, 0.04); |
| | | background-size: 100% auto; |
| | | position: relative; |
| | | margin-bottom: 0.15rem; |
| | | z-index: 10; |
| | | } |
| | | |
| | | .data-foot-line { |
| | | position: absolute; |
| | | bottom: 0; |
| | | width: 100%; |
| | | left: 0; |
| | | } |
| | | |
| | | .data-foot-line:before, |
| | | .data-foot-line:after { |
| | | position: absolute; |
| | | width: 10px; |
| | | height:10px; |
| | | content: ""; |
| | | border-bottom: 2px solid #02a6b5; |
| | | bottom: 0; |
| | | } |
| | | |
| | | .boxall:before, |
| | | .data-foot-line:before { |
| | | border-left: 2px solid #02a6b5; |
| | | left: 0; |
| | | } |
| | | |
| | | .boxall:after, |
| | | .data-foot-line:after { |
| | | border-right: 2px solid #02a6b5; |
| | | right: 0; |
| | | } |
| | | |
| | | .boxall:before, |
| | | .boxall:after { |
| | | position: absolute; |
| | | width: 10px; |
| | | height: 10px; |
| | | content: ""; |
| | | border-top: 2px solid #02a6b5; |
| | | top: 0; |
| | | } |
| | | |
| | | .data-left-item:before, |
| | | .data-right-item:before, |
| | | .center-top-num:before, |
| | | .center-top:before{ |
| | | border-left: 2px solid #02a6b5; |
| | | left: 0; |
| | | position: absolute; |
| | | width: 10px; |
| | | height:10px; |
| | | content: ""; |
| | | border-top: 2px solid #02a6b5; |
| | | top: 0; |
| | | } |
| | | |
| | | .data-left-item:after, |
| | | .data-right-item:after, |
| | | .center-top-num:after, |
| | | .center-top:after { |
| | | border-right: 2px solid #02a6b5; |
| | | right: 0; |
| | | position: absolute; |
| | | width: 10px; |
| | | height: 10px; |
| | | content: ""; |
| | | border-top: 2px solid #02a6b5; |
| | | top: 0; |
| | | } |
| | | |
| | | .data-left, |
| | | .data-right { |
| | | /* display: flex; */ |
| | | } |
| | | |
| | | .data-left > .data-left-item, |
| | | .data-right > .data-right-item { |
| | | flex: 1; |
| | | margin-bottom: 0.9rem; |
| | | } |
| | | |
| | | .data-center .title, |
| | | .data-left > .data-left-item .title, |
| | | .data-right > .data-right-item .title { |
| | | /* font-size: .2rem; */ |
| | | font-size: 1rem; |
| | | padding: 7px 0; |
| | | color: #fff; |
| | | text-align: center; |
| | | /* line-height: .5rem; */ |
| | | } |
| | | |
| | | .data-center .chart-center{ |
| | | width: 100%; |
| | | } |
| | | |
| | | .center-top-num{ |
| | | height: 80px; |
| | | padding-top: 7px; |
| | | margin-bottom: 0.8rem; |
| | | display: flex; |
| | | .item{ |
| | | flex: 1; |
| | | text-align: center; |
| | | } |
| | | .text{ |
| | | color: #fcf0d8; |
| | | font-size: 14px; |
| | | } |
| | | .num{ |
| | | font-size: 34px; |
| | | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; |
| | | font-weight: bold; |
| | | color: #67caca; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="m-charts"> |
| | | <el-tabs |
| | | v-model="name" |
| | | @tab-click="tabClick" |
| | | type="border-card" |
| | | style="height: 100%; width: 100%; box-shadow: none" |
| | | > |
| | | <el-tab-pane name="bar"> |
| | | <template #label> |
| | | <span><i class="el-icon-date"></i> æ±ç¶å¾ </span> |
| | | </template> |
| | | <div |
| | | :style="{ height: heigth + 'px', width: width + 'px' }" |
| | | id="bar-0001" |
| | | ></div> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="pie" :lazy="false" label="æ¶æ¯ä¸å¿"> |
| | | <template #label> |
| | | <span><i class="el-icon-date"></i> 饼ç¶å¾ </span> |
| | | </template> |
| | | <div |
| | | :style="{ height: heigth + 'px', width: width + 'px' }" |
| | | id="pie-0001" |
| | | ></div> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="line" :lazy="false" label="è§è²ç®¡ç"> |
| | | <template #label> |
| | | <span><i class="el-icon-date"></i> æçº¿å¾ </span> |
| | | </template> |
| | | <div |
| | | :style="{ height: heigth + 'px', width: width + 'px' }" |
| | | id="line-0001" |
| | | ></div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | let echarts = require("echarts"); |
| | | import options from "./chartOptions"; |
| | | let $bar; |
| | | let $pie; |
| | | let $line; |
| | | export default { |
| | | mounted() { |
| | | $bar = echarts.init(document.getElementById("bar-0001")); |
| | | $bar.setOption(this.options.bar); |
| | | }, |
| | | created() { |
| | | this.heigth = document.documentElement.clientHeight - 190; |
| | | this.width = document.documentElement.clientWidth - 240; |
| | | }, |
| | | methods: { |
| | | tabClick(name) { |
| | | if (name.props.name == "pie") { |
| | | if (!$pie) { |
| | | $pie = echarts.init(document.getElementById("pie-0001")); |
| | | $pie.setOption(this.options.pie); |
| | | |
| | | } |
| | | } else if (name.props.name == "line") { |
| | | if (!$line) { |
| | | $line = echarts.init(document.getElementById("line-0001")); |
| | | $line.setOption(this.options.line); |
| | | |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | name: "bar", |
| | | heigth: 450, |
| | | width: 1000, |
| | | options: options, |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .m-charts { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | background: #f1f1f1; |
| | | margin: auto 0; |
| | | padding: 12px; |
| | | .m-tabs { |
| | | background: white; |
| | | } |
| | | } |
| | | .m-charts ::v-deep(.el-tabs__content) { |
| | | height: calc(100% - 45px); |
| | | } |
| | | .m-charts ::v-deep(.el-tab-pane) { |
| | | height: 100%; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="home-contianer"> |
| | | <div> |
| | | <div class="order-title"> |
| | | <h2>订åç»è®¡</h2> |
| | | </div> |
| | | <div |
| | | data-v-542f4644 |
| | | class="ivu-row" |
| | | style="padding: 15px; background: white" |
| | | > |
| | | <div |
| | | v-for="item in topColor" |
| | | :key="item.name" |
| | | class="ivu-col ivu-col-span-6" |
| | | style="padding-left: 8px; padding-right: 8px" |
| | | > |
| | | <div |
| | | data-v-542f4644 |
| | | class="ivu-card" |
| | | :style="{ background: item.background }" |
| | | > |
| | | <div class="icon-left"> |
| | | <i :class="item.icon" /> |
| | | </div> |
| | | <div class="ivu-card-body"> |
| | | <div class="demo-color-name">{{ item.name }}</div> |
| | | <div class="demo-color-desc">#{{ item.qty }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="numbers"> |
| | | |
| | | <div class="item" v-for="index in 8" :key="index"> |
| | | <div class="number"> |
| | | <!-- {{value}} --> |
| | | {{index * 1000}} |
| | | </div> |
| | | <div>Order total</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="order-title"> |
| | | <h2>è®¢åæ¥è¯¢</h2> |
| | | </div> |
| | | |
| | | <div class="order-range"> |
| | | <div |
| | | class="order-item" |
| | | v-for="(item, index) in totalRange" |
| | | :key="index" |
| | | > |
| | | <div class="total"> |
| | | <div class="number"> |
| | | {{item.qty}} |
| | | </div> |
| | | </div> |
| | | <div class="name">{{ titleLeft + item.name }}</div> |
| | | <div class="date"> |
| | | {{ beginDate.replace(/-/g, ".") }} -- |
| | | {{ endDate.replace(/-/g, ".") }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | beginDate: "", |
| | | endDate: "", |
| | | n: 90, |
| | | topColor: [ |
| | | { |
| | | name: "è®¢åæ°", |
| | | desc: "#205", |
| | | background: "rgb(25, 190, 107)", |
| | | icon: "el-icon-shopping-cart-full", |
| | | qty: 6000, |
| | | key: "total", |
| | | }, |
| | | { |
| | | name: "已仿¬¾", |
| | | desc: "#412", |
| | | background: "rgb(45, 183, 245)", |
| | | icon: "el-icon-wallet", |
| | | qty: 7100, |
| | | key: "total", |
| | | }, |
| | | { |
| | | name: "å¾
åè´§", |
| | | desc: "#412", |
| | | background: "#f2b458", |
| | | icon: "el-icon-shopping-cart-1", |
| | | qty: 500, |
| | | key: "hasPay", |
| | | }, |
| | | { |
| | | name: "é
éä¸", |
| | | desc: "#412", |
| | | background: "rgb(84, 110, 122)", |
| | | icon: "el-icon-shopping-cart-2", |
| | | qty: 800, |
| | | key: "notShip", |
| | | }, |
| | | { |
| | | name: "已宿", |
| | | desc: "#412", |
| | | background: "rgb(45, 183, 245)", |
| | | icon: "el-icon-set-up", |
| | | qty: 1880, |
| | | key: "completed", |
| | | }, |
| | | { |
| | | name: "é货订å", |
| | | desc: "#12", |
| | | background: "rgb(237, 64, 20)", |
| | | icon: "el-icon-data-analysis", |
| | | qty: 2290, |
| | | key: "refund", |
| | | }, |
| | | ], |
| | | totalRange: [ |
| | | { |
| | | name: "è®¢åæ°", |
| | | desc: "#205", |
| | | background: "rgb(25, 190, 107)", |
| | | icon: "ios-cart", |
| | | qty: 1290, |
| | | key: "total", |
| | | }, |
| | | { |
| | | name: "已仿¬¾", |
| | | desc: "#412", |
| | | background: "rgb(45, 183, 245)", |
| | | icon: "ios-cash", |
| | | qty: 3450, |
| | | key: "total", |
| | | }, |
| | | { |
| | | name: "å¾
åè´§", |
| | | desc: "#412", |
| | | background: "rgb(255, 153, 0)", |
| | | icon: "md-bus", |
| | | qty: 200, |
| | | key: "hasPay", |
| | | }, |
| | | { |
| | | name: "é
éä¸", |
| | | desc: "#412", |
| | | background: " rgb(84, 110, 122)", |
| | | icon: "md-pin", |
| | | qty: 7000, |
| | | key: "notShip", |
| | | }, |
| | | { |
| | | name: "交æå®æ", |
| | | desc: "#412", |
| | | background: "rgb(45, 183, 245)", |
| | | icon: "ios-help-buoy", |
| | | qty: 8900, |
| | | key: "completed", |
| | | }, |
| | | { |
| | | name: "é货订å", |
| | | desc: "#12", |
| | | background: "rgb(237, 64, 20)", |
| | | icon: "ios-navigate", |
| | | qty: 2450, |
| | | key: "refund", |
| | | }, |
| | | ], |
| | | value1: "1", |
| | | titleLeft: "", |
| | | dateNow: "", |
| | | }; |
| | | }, |
| | | methods: { |
| | | getDate() { |
| | | var date = new Date(); |
| | | var year = date.getFullYear(); |
| | | var month = date.getMonth() + 1; |
| | | var day = date.getDate(); |
| | | var hour = date.getHours(); |
| | | var minutes = date.getMinutes(); |
| | | var second = date.getSeconds(); |
| | | this.beginDate = |
| | | year + |
| | | "-" + |
| | | (month < 10 ? "0" + month : month) + |
| | | "-" + |
| | | (day < 10 ? "0" + day : day); |
| | | this.endDate = this.beginDate; |
| | | this.dateNow = this.beginDate; |
| | | }, |
| | | search() { |
| | | if (this.dateNow == this.beginDate && this.dateNow == this.endDate) { |
| | | this.titleLeft = "仿¥"; |
| | | } else { |
| | | this.titleLeft = "彿"; |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getDate(); |
| | | }, |
| | | mounted() {}, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .home-contianer { |
| | | background: #efefef; |
| | | width: 100%; |
| | | height: 100%; |
| | | /* padding: 20px; */ |
| | | } |
| | | |
| | | .ivu-card-body { |
| | | text-align: center; |
| | | padding: 20px 5px; |
| | | /* padding-left: 80px; */ |
| | | font-size: 16px; |
| | | } |
| | | .demo-color-name { |
| | | color: #fff; |
| | | font-size: 14px; |
| | | } |
| | | .demo-color-desc { |
| | | color: white; |
| | | /* opacity: 0.7; */ |
| | | font-size: 20px; |
| | | margin-top: 2px; |
| | | } |
| | | .ivu-card { |
| | | box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47); |
| | | display: flex; |
| | | position: relative; |
| | | padding-top: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | .ivu-card .icon-left { |
| | | width: 85px; |
| | | } |
| | | .ivu-card .ivu-card-body { |
| | | flex: 1; |
| | | } |
| | | .ivu-card .icon-left { |
| | | text-align: center; |
| | | border-right: 1px solid; |
| | | padding: 8px 0px; |
| | | height: 100%; |
| | | |
| | | font-size: 50px; |
| | | color: white; |
| | | } |
| | | .ivu-row { |
| | | border-bottom: 2px dotted #eee; |
| | | padding: 15px; |
| | | margin-bottom: 15px; |
| | | display: flex; |
| | | } |
| | | |
| | | .ivu-row > div { |
| | | flex: 1; |
| | | } |
| | | |
| | | .h5-desc { |
| | | padding-top: 10px; |
| | | } |
| | | </style> |
| | | |
| | | <style lang="less" scoped> |
| | | .jn-day-total { |
| | | display: flex; |
| | | padding: 15px; |
| | | background: white; |
| | | .date-text { |
| | | line-height: 36px; |
| | | padding: 0 15px; |
| | | } |
| | | .date { |
| | | margin-right: 20px; |
| | | } |
| | | .btn { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | .order-title { |
| | | h2 { |
| | | padding: 7px 15px; |
| | | font-weight: 500; |
| | | background: white; |
| | | border-bottom: 1px dotted #d4d4d4; |
| | | } |
| | | } |
| | | |
| | | .order-range { |
| | | padding: 0 15px; |
| | | background: white; |
| | | background: white; |
| | | display: flex; |
| | | // flex-direction: row-reverse; |
| | | } |
| | | |
| | | .order-range .order-item { |
| | | box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47); |
| | | flex: 1; |
| | | border-radius: 6px; |
| | | font-size: 14px; |
| | | text-align: center; |
| | | border: 1px solid #e6e6e6; |
| | | margin: 7px; |
| | | } |
| | | |
| | | .order-range .total { |
| | | color: white; |
| | | font-size: 50px; |
| | | font-weight: bold; |
| | | line-height: 100px; |
| | | background: #55ce80; |
| | | font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", |
| | | "Microsoft YaHei", "微软é
é»", Arial, sans-serif; |
| | | } |
| | | .order-range .number { |
| | | transition: transform 0.8s; |
| | | } |
| | | .order-range .number:hover { |
| | | cursor: pointer; |
| | | transform: scale(1.2); |
| | | } |
| | | .order-range .name { |
| | | font-size: 20px; |
| | | padding: 10px; |
| | | } |
| | | |
| | | .order-range .date { |
| | | padding: 1px 0 20px 0; |
| | | color: #9e9e9e; |
| | | font-size: 13px; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | <style lang="less" scoped> |
| | | .numbers { |
| | | margin-bottom: 15px; |
| | | border-radius: 5px; |
| | | border: 1px solid #eaeaea; |
| | | background: white; |
| | | display: flex; |
| | | |
| | | padding: 20px 0px; |
| | | .item { |
| | | flex: 1; |
| | | text-align: center; |
| | | border-right: 1px solid #e5e5e5; |
| | | } |
| | | .item > ãdiv:first-child { |
| | | word-break: break-all; |
| | | color: #282727; |
| | | font-size: 30px; |
| | | // padding-bottom: 12px; |
| | | } |
| | | .item > ãdiv:last-child { |
| | | font-size: 13px; |
| | | color: #777; |
| | | } |
| | | .item:last-child { |
| | | border-right: none; |
| | | } |
| | | .number { |
| | | cursor: pointer; |
| | | transition: transform 0.8s; |
| | | } |
| | | .number:hover { |
| | | transform: scale(1.2); |
| | | color: #03c10b !important; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="c-container"> |
| | | <div class="item"> |
| | | <div class="left"> |
| | | <VolHeader |
| | | icon="md-apps" |
| | | text="æ±ç¶å¾" |
| | | style="padding-left: 10px; margin-bottom: 5px" |
| | | ></VolHeader> |
| | | <div style="height: calc(100% - 45px)" :id="bar"></div> |
| | | </div> |
| | | <div class="right"> |
| | | <VolHeader |
| | | icon="md-apps" |
| | | text="åºç¡è¡¨å" |
| | | style="padding-left: 10px; margin-bottom: 20px" |
| | | ></VolHeader> |
| | | <VolForm |
| | | style="padding-right: 30px" |
| | | ref="myform1" |
| | | :loadKey="true" |
| | | :label-width="80" |
| | | :formFields="formFields1" |
| | | :formRules="formRules1" |
| | | ></VolForm> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="item"> |
| | | <div class="left"> |
| | | <VolHeader |
| | | icon="md-apps" |
| | | text="表å屿§å段åªè¯»" |
| | | style="padding-left: 10px; margin-bottom: 20px" |
| | | ></VolHeader> |
| | | <VolForm |
| | | style="padding-right: 30px" |
| | | ref="myform1" |
| | | :loadKey="true" |
| | | :formFields="formFields2" |
| | | :formRules="formRules2" |
| | | ></VolForm> |
| | | </div> |
| | | <div class="right"> |
| | | <VolHeader |
| | | icon="md-apps" |
| | | text="饼ç¶å¾è¡¨" |
| | | style="padding-left: 10px" |
| | | ></VolHeader> |
| | | <div style="height: calc(100% - 30px)" :id="pie"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import VolHeader from '@/components/basic/VolHeader.vue'; |
| | | import VolForm from '@/components/basic/VolForm.vue'; |
| | | let echarts = require('echarts'); |
| | | import options from './chartOptions'; |
| | | import { |
| | | formFields1, |
| | | formRules1, |
| | | formFields2, |
| | | formRules2 |
| | | } from './formOptions'; |
| | | export default { |
| | | components: { VolForm, VolHeader }, |
| | | data() { |
| | | return { |
| | | formFields1: formFields1, |
| | | formRules1: formRules1, |
| | | formFields2: formFields2, |
| | | formRules2: formRules2, |
| | | bar: 'b-' + ~~(Math.random(10000, 100000) * 100000), |
| | | pie: 'p-' + ~~(Math.random(10000, 100000) * 100000), |
| | | options: options |
| | | }; |
| | | }, |
| | | mounted() { |
| | | let $bar = echarts.init(document.getElementById(this.bar)); |
| | | $bar.setOption(this.options.bar); |
| | | |
| | | this.options.pie.legend.top = 50; |
| | | this.options.pie.legend.right = 80; |
| | | this.options.pie.legend.orient = 'vertical'; |
| | | let $pie = echarts.init(document.getElementById(this.pie)); |
| | | $pie.setOption(this.options.pie); |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .c-container { |
| | | position: absolute; |
| | | height: 100%; |
| | | width: 100%; |
| | | background: #f1f1f1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding: 3px; |
| | | .item { |
| | | flex:1; |
| | | height:0; |
| | | display: flex; |
| | | > div { |
| | | flex: 1; |
| | | width: 0; |
| | | // margin: 10px; |
| | | background: #fff; |
| | | } |
| | | .left { |
| | | margin: 4px; |
| | | } |
| | | .right { |
| | | margin: 4px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/quartzJob/deviceInfo.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "设å¤ä¿¡æ¯", |
| | | name: "deviceInfo", |
| | | url: "/DeviceInfo/", |
| | | sortName: "createDate", |
| | | }); |
| | | const editFormFields = ref({ |
| | | deviceCode: "", |
| | | deviceName: "", |
| | | deviceType: "", |
| | | deviceStatus: "", |
| | | deviceIp: "", |
| | | devicePort: "", |
| | | devicePlcType: "", |
| | | deviceRemark: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "设å¤ç¼å·", |
| | | required: true, |
| | | field: "deviceCode", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "设å¤åç§°", |
| | | required: true, |
| | | field: "deviceName", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "设å¤ç±»å", |
| | | required: true, |
| | | field: "deviceType", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "设å¤ç¶æ", |
| | | required: true, |
| | | field: "deviceStatus", |
| | | type: "select", |
| | | dataKey: "deviceStatus", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { title: "设å¤IP", required: true, field: "deviceIp", type: "string" }, |
| | | { |
| | | title: "设å¤ç«¯å£", |
| | | required: true, |
| | | field: "devicePort", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "PLCç±»å", |
| | | required: true, |
| | | field: "devicePlcType", |
| | | type: "select", |
| | | dataKey: "devicePlcType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "夿³¨", |
| | | field: "deviceRemark", |
| | | type: "string", |
| | | }, |
| | | ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | deviceCode: "", |
| | | deviceType: "", |
| | | deviceStatus: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "设å¤ç¼å·", field: "deviceCode" }, |
| | | { |
| | | title: "设å¤ç±»å", |
| | | field: "deviceType", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "设å¤ç¶æ", |
| | | field: "deviceStatus", |
| | | type: "select", |
| | | dataKey: "deviceStatus", |
| | | data: [], |
| | | }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceCode", |
| | | title: "设å¤ç¼å·", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceName", |
| | | title: "设å¤åç§°", |
| | | type: "string", |
| | | link: true, |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceType", |
| | | title: "设å¤ç±»å", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "deviceType", data: [] }, |
| | | }, |
| | | { |
| | | field: "deviceStatus", |
| | | title: "设å¤ç¶æ", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | bind: { key: "deviceStatus", data: [] }, |
| | | }, |
| | | { |
| | | field: "deviceIp", |
| | | title: "设å¤IP", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "devicePort", |
| | | title: "设å¤ç«¯å£", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "devicePlcType", |
| | | title: "PLCç±»å", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "devicePlcType", data: [] }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceRemark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "设å¤å议信æ¯", |
| | | table: "DeviceProtocol", |
| | | columns: [ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceId", |
| | | title: "设å¤ä¸»é®", |
| | | type: "string", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceChildCode", |
| | | title: "设å¤åç¼å·", |
| | | type: "string", |
| | | edit: { type: "" }, |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | sortable: true, |
| | | }, |
| | | { |
| | | field: "deviceProDataBlock", |
| | | title: "åè®®æ°æ®å", |
| | | type: "string", |
| | | width: 100, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "deviceProOffset", |
| | | title: "åç§»é", |
| | | type: "decimal", |
| | | width: 90, |
| | | edit: { type: "number" }, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProDataType", |
| | | title: "æ°æ®ç±»å", |
| | | type: "string", |
| | | width: 90, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "deviceProDataLength", |
| | | title: "æ°æ®é¿åº¦", |
| | | type: "int", |
| | | width: 90, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "deviceProParamName", |
| | | title: "åæ°åç§°", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "deviceProParamType", |
| | | title: "åæ°ç±»å", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "deviceProParamDes", |
| | | title: "åæ°è¯´æ", |
| | | type: "string", |
| | | width: 130, |
| | | require: true, |
| | | align: "left", |
| | | edit: { type: "" }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | sortable: true, |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | ], |
| | | sortName: "createDate", |
| | | key: "id", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/quartzJob/deviceProtocol.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "设å¤å议信æ¯", |
| | | name: "deviceProtocol", |
| | | url: "/DeviceProtocol/", |
| | | sortName: "id", |
| | | }); |
| | | const editFormFields = ref({ |
| | | deviceCode: "", |
| | | deviceName: "", |
| | | deviceType: "", |
| | | deviceStatus: "", |
| | | deviceIp: "", |
| | | devicePort: "", |
| | | devicePlcType: "", |
| | | deviceRemark: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "设å¤ç¼å·", |
| | | required: true, |
| | | field: "deviceCode", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "设å¤åç§°", |
| | | required: true, |
| | | field: "deviceName", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "设å¤ç±»å", |
| | | required: true, |
| | | field: "deviceType", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "设å¤ç¶æ", |
| | | required: true, |
| | | field: "deviceStatus", |
| | | type: "string", |
| | | }, |
| | | ], |
| | | [ |
| | | { title: "设å¤IP", required: true, field: "deviceIp", type: "string" }, |
| | | { |
| | | title: "设å¤ç«¯å£", |
| | | required: true, |
| | | field: "devicePort", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "PLCç±»å", |
| | | required: true, |
| | | field: "devicePlcType", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "夿³¨", |
| | | field: "deviceRemark", |
| | | type: "string", |
| | | }, |
| | | ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | deviceCode: "", |
| | | deviceType: "", |
| | | deviceStatus: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "设å¤ç¼å·", field: "deviceCode" }, |
| | | { title: "设å¤ç±»å", field: "deviceType" }, |
| | | { title: "设å¤ç¶æ", field: "deviceStatus" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceId", |
| | | title: "设å¤ä¸»é®", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceChildCode", |
| | | title: "设å¤åç¼å·", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProDataBlock", |
| | | title: "åè®®æ°æ®å", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProOffset", |
| | | title: "åç§»é", |
| | | type: "decimal", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProDataType", |
| | | title: "æ°æ®ç±»å", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProDataLength", |
| | | title: "æ°æ®é¿åº¦", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProParamName", |
| | | title: "åæ°åç§°", |
| | | type: "string", |
| | | width: 200, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProParamType", |
| | | title: "åæ°ç±»å", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProParamDes", |
| | | title: "åæ°è¯´æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceProRemark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/quartzJob/deviceProtocolDetail.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "设å¤åè®®æç»ä¿¡æ¯", |
| | | name: "deviceProtocolDetail", |
| | | url: "/DeviceProtocolDetail/", |
| | | sortName: "createDate", |
| | | }); |
| | | const editFormFields = ref({ |
| | | deviceType: "", |
| | | deviceProParamName: "", |
| | | protocolDetailType: "", |
| | | protocalDetailValue: "", |
| | | protocolDetailDes: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "设å¤ç±»å", |
| | | required: true, |
| | | field: "deviceType", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "åæ°åç§°", |
| | | required: true, |
| | | field: "deviceProParamName", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "æç»ç±»å", |
| | | required: true, |
| | | field: "protocolDetailType", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "æç»åå¼", |
| | | required: true, |
| | | field: "protocalDetailValue", |
| | | type: "string", |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "æç»è¯´æ", |
| | | field: "protocolDetailDes", |
| | | type: "textarea", |
| | | }, |
| | | ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | deviceType: "", |
| | | deviceProParamName: "", |
| | | protocolDetailType: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "设å¤ç±»å", |
| | | field: "deviceType", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "åæ°åç§°", |
| | | field: "deviceProParamName", |
| | | type: "like", |
| | | }, |
| | | { |
| | | title: "æç»ç±»å", |
| | | field: "protocolDetailType", |
| | | type: "like", |
| | | }, |
| | | { |
| | | title: "æç»åå¼", |
| | | field: "protocalDetailValue", |
| | | type: "like", |
| | | }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deviceType", |
| | | title: "设å¤ç±»å", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | bind: { key: "deviceType", data: [] }, |
| | | }, |
| | | { |
| | | field: "deviceProParamName", |
| | | title: "设å¤åè®®åæ°åç§°", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "protocolDetailType", |
| | | title: "设å¤åè®®æç»ç±»å", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "protocalDetailValue", |
| | | title: "设å¤åè®®æç»åå¼", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "protocolDetailDes", |
| | | title: "设å¤åè®®æç»è¯´æ", |
| | | type: "string", |
| | | width: 350, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "remark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/quartzJob/dispatchInfo.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "è°åº¦æå¡é
置信æ¯", |
| | | name: "dispatchInfo", |
| | | url: "/DispatchInfo/", |
| | | sortName: "createDate", |
| | | }); |
| | | const editFormFields = ref({ |
| | | name: "", |
| | | jobGroup: "", |
| | | assemblyName: "", |
| | | className: "", |
| | | intervalSecond: "", |
| | | beginTime: "", |
| | | endTime: "", |
| | | remark: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "ä»»å¡åç§°", |
| | | required: true, |
| | | field: "name", |
| | | type: "string", |
| | | }, |
| | | { |
| | | title: "ä»»å¡åç»", |
| | | required: true, |
| | | field: "jobGroup", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "ç¨åºéåç§°", |
| | | required: true, |
| | | field: "assemblyName", |
| | | type: "string", |
| | | type: "select", |
| | | dataKey: "jobAssembly", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "任塿å¨ç±»", |
| | | required: true, |
| | | field: "className", |
| | | type: "string", |
| | | type: "select", |
| | | dataKey: "jobClassName", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "é´éæ¶é´", |
| | | required: true, |
| | | field: "intervalSecond", |
| | | type: "number", |
| | | }, |
| | | { |
| | | title: "å¼å§æ¶é´", |
| | | field: "beginTime", |
| | | type: "datetime", |
| | | }, |
| | | { |
| | | title: "ç»ææ¶é´", |
| | | field: "endTime", |
| | | type: "datetime", |
| | | }, |
| | | { |
| | | title: "夿³¨", |
| | | field: "remark", |
| | | type: "string", |
| | | }, |
| | | ], |
| | | ]); |
| | | const searchFormFields = ref({ |
| | | name: "", |
| | | jobGroup: "", |
| | | assemblyName: "", |
| | | className: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "ä»»å¡åç§°", |
| | | field: "name", |
| | | type: "like", |
| | | }, |
| | | { |
| | | title: "ä»»å¡åç»", |
| | | field: "jobGroup", |
| | | type: "select", |
| | | dataKey: "deviceType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "ç¨åºéåç§°", |
| | | field: "assemblyName", |
| | | type: "like", |
| | | }, |
| | | { |
| | | title: "任塿å¨ç±»", |
| | | field: "className", |
| | | type: "like", |
| | | }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "name", |
| | | title: "ä»»å¡åç§°", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "jobGroup", |
| | | title: "ä»»å¡åç»", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | bind: { key: "deviceType", data: [] }, |
| | | }, |
| | | { |
| | | field: "assemblyName", |
| | | title: "ç¨åºéåç§°", |
| | | type: "string", |
| | | width: 180, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "className", |
| | | title: "任塿å¨ç±»", |
| | | type: "int", |
| | | width: 200, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "intervalSecond", |
| | | title: "æ§è¡é´éæ¶é´", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "beginTime", |
| | | title: "å¼å§æ¶é´", |
| | | type: "datetime", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "endTime", |
| | | title: "ç»ææ¶é´", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "remark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- |
| | | *Authorï¼jxx |
| | | *Contactï¼283591387@qq.com |
| | | *代ç ç±æ¡æ¶çæ,任使´æ¹é½å¯è½å¯¼è´è¢«ä»£ç çæå¨è¦ç |
| | | *ä¸å¡è¯·å¨@/extension/system/Sys_Role.jsæ¤å¤ç¼å |
| | | --> |
| | | <template> |
| | | <view-grid ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend"> |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/system/Sys_Role1.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: 'Role_Id', |
| | | footer: "Foots", |
| | | cnName: 'è§è²ç®¡ç', |
| | | name: 'Sys_Role', |
| | | url: "/Sys_Role/", |
| | | sortName: "Role_Id" |
| | | }); |
| | | const editFormFields = ref({"ParentId":[],"RoleName":"","DeptName":"","Enable":"","Creator":"","CreateDate":"","Modifier":"","ModifyDate":""}); |
| | | const editFormOptions = ref([[{"dataKey":"tree_roles","data":[],"title":"ç¶çº§ID","required":true,"field":"ParentId","type":"cascader"}, |
| | | {"title":"è§è²åç§°","required":true,"field":"RoleName"}], |
| | | [{"title":"é¨é¨åç§°","field":"DeptName"}, |
| | | {"dataKey":"enable","data":[],"title":"æ¯å¦å¯ç¨","field":"Enable","type":"switch"}], |
| | | [{"title":"å建人","field":"Creator","disabled":true}, |
| | | {"title":"å建æ¶é´","field":"CreateDate","disabled":true,"type":"datetime"}], |
| | | [{"title":"ä¿®æ¹äºº","field":"Modifier","disabled":true}, |
| | | {"title":"ä¿®æ¹æ¶é´","field":"ModifyDate","disabled":true}]]); |
| | | const searchFormFields = ref({"RoleName":"","DeptName":"","Enable":"","CreateDate":"","ModifyDate":""}); |
| | | const searchFormOptions = ref([[{"title":"è§è²åç§°","field":"RoleName","type":"text"},{"title":"é¨é¨åç§°","field":"DeptName","type":"text"},{"dataKey":"enable","data":[],"title":"æ¯å¦å¯ç¨","field":"Enable","type":"select"}],[{"title":"å建æ¶é´","field":"CreateDate","type":"datetime"},{"title":"ä¿®æ¹æ¶é´","field":"ModifyDate","type":"datetime"}]]); |
| | | const columns = ref([{field:'Role_Id',title:'è§è²ID',type:'int',width:70,readonly:true,require:true,align:'left',sortable:true}, |
| | | // {field:'ParentId',title:'ç¶çº§ID',type:'int',bind:{ key:'tree_roles',data:[]},width:70,require:true,align:'left'}, |
| | | {field:'RoleName',title:'è§è²åç§°',type:'string',link:true,width:90,require:true,align:'left'}, |
| | | {field:'Dept_Id',title:'é¨é¨ID',type:'int',width:90,hidden:true,align:'left'}, |
| | | {field:'DeptName',title:'é¨é¨åç§°',type:'string',width:90,align:'left'}, |
| | | {field:'Enable',title:'æ¯å¦å¯ç¨',type:'byte',bind:{ key:'enable',data:[]},width:90,align:'left'}, |
| | | {field:'OrderNo',title:'æåº',type:'int',width:90,hidden:true,align:'left'}, |
| | | {field:'Creator',title:'å建人',type:'string',width:130,readonly:true,align:'left'}, |
| | | {field:'CreateDate',title:'å建æ¶é´',type:'datetime',width:90,readonly:true,align:'left',sortable:true}, |
| | | {field:'Modifier',title:'ä¿®æ¹äºº',type:'string',width:130,readonly:true,align:'left'}, |
| | | {field:'ModifyDate',title:'ä¿®æ¹æ¶é´',type:'datetime',width:90,readonly:true,align:'left',sortable:true}]); |
| | | const detail = ref({ |
| | | cnName: "#detailCnName", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "" |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/taskinfo/task.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "taskId", |
| | | footer: "Foots", |
| | | cnName: "ä»»å¡ä¿¡æ¯", |
| | | name: "task", |
| | | url: "/Task/", |
| | | sortName: "CreateDate", |
| | | }); |
| | | const editFormFields = ref({ |
| | | taskNum:"", |
| | | palletCode: "", |
| | | roadway: "", |
| | | taskType:"", |
| | | taskState:"", |
| | | wmsId:"", |
| | | sourceAddress: "", |
| | | targetAddress: "", |
| | | currentAddress: "", |
| | | nextAddress: "", |
| | | creater: "", |
| | | createDate: "", |
| | | grade: "" |
| | | }); |
| | | const editFormOptions = ref([[{ title: "ä¼å
级", field: "grade", type: "int" },]]); |
| | | const searchFormFields = ref({ |
| | | taskNum: "", |
| | | palletCode: "", |
| | | roadway: "", |
| | | sourceAddress: "", |
| | | targetAddress: "", |
| | | currentAddress: "", |
| | | nextAddress: "", |
| | | creater: "", |
| | | createDate: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "ä»»å¡å·", field: "taskNum", type: "int" }, |
| | | { title: "æçç¼å·", field: "palletCode", type: "like" }, |
| | | { |
| | | title: "ä»»å¡ç±»å", |
| | | field: "taskType", |
| | | type: "selectList", |
| | | dataKey: "taskType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "ä»»å¡ç¶æ", |
| | | field: "taskState", |
| | | type: "selectList", |
| | | dataKey: "taskState", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { title: "èµ·å§å°å", field: "sourceAddress", type: "like" }, |
| | | { title: "ç®æ å°å", field: "targetAddress", type: "like" }, |
| | | { title: "å½åä½ç½®", field: "currentAddress", type: "like" }, |
| | | { title: "ä¸ä¸ä½ç½®", field: "nextAddress", type: "like" }, |
| | | ], |
| | | [ |
| | | { title: "å··éå·", field: "roadway", type: "like" }, |
| | | { title: "å建人", field: "creater", type: "like" }, |
| | | { title: "å建æ¶é´", field: "createDate", type: "datetime" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "taskId", |
| | | title: "TaskId", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "taskNum", |
| | | title: "ä»»å¡å·", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "palletCode", |
| | | title: "æçç¼å·", |
| | | type: "string", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "roadway", |
| | | title: "å··éå·", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "taskType", |
| | | title: "ä»»å¡ç±»å", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | bind: { key: "taskType", data: [] }, |
| | | }, |
| | | { |
| | | field: "taskState", |
| | | title: "ä»»å¡ç¶æ", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "taskState", data: [] }, |
| | | }, |
| | | { |
| | | field: "sourceAddress", |
| | | title: "èµ·å§å°å", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "targetAddress", |
| | | title: "ç®æ å°å", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "currentAddress", |
| | | title: "å½åä½ç½®", |
| | | type: "string", |
| | | width: 110, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "nextAddress", |
| | | title: "ä¸ä¸ä½ç½®", |
| | | type: "string", |
| | | width: 110, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "exceptionMessage", |
| | | title: "å¼å¸¸ä¿¡æ¯", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "grade", |
| | | title: "ä¼å
级", |
| | | type: "int", |
| | | width: 60, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "dispatchertime", |
| | | title: "ä»»å¡ä¸åæ¶é´", |
| | | type: "datetime", |
| | | width: 110, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "wmsId", |
| | | title: "WMSä»»å¡ä¸»é®", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "remark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <template> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/taskinfo/task_Hty.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "taskId", |
| | | footer: "Foots", |
| | | cnName: "ä»»å¡ä¿¡æ¯", |
| | | name: "task_Hty", |
| | | url: "/Task_Hty/", |
| | | sortName: "CreateDate", |
| | | }); |
| | | const editFormFields = ref({}); |
| | | const editFormOptions = ref([]); |
| | | const searchFormFields = ref({ |
| | | taskNum: "", |
| | | palletCode: "", |
| | | roadway: "", |
| | | sourceAddress: "", |
| | | targetAddress: "", |
| | | currentAddress: "", |
| | | nextAddress: "", |
| | | creater: "", |
| | | createDate: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "ä»»å¡å·", field: "taskNum", type: "int" }, |
| | | { title: "æçç¼å·", field: "palletCode", type: "like" }, |
| | | { |
| | | title: "ä»»å¡ç±»å", |
| | | field: "taskType", |
| | | type: "selectList", |
| | | dataKey: "taskType", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "ä»»å¡ç¶æ", |
| | | field: "taskState", |
| | | type: "selectList", |
| | | dataKey: "taskState", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { title: "èµ·å§å°å", field: "sourceAddress", type: "like" }, |
| | | { title: "ç®æ å°å", field: "targetAddress", type: "like" }, |
| | | { title: "å½åä½ç½®", field: "currentAddress", type: "like" }, |
| | | { title: "ä¸ä¸ä½ç½®", field: "nextAddress", type: "like" }, |
| | | ], |
| | | [ |
| | | { title: "å··éå·", field: "roadway", type: "like" }, |
| | | { title: "ç产产线", field: "productionLine", type: "select", dataKey: "ProductionLine", data: [] }, |
| | | { title: "å建人", field: "creater", type: "like" }, |
| | | { title: "å建æ¶é´", field: "createDate", type: "datetime" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "taskId", |
| | | title: "TaskId", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "taskNum", |
| | | title: "ä»»å¡å·", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "palletCode", |
| | | title: "æçç¼å·", |
| | | type: "string", |
| | | width: 200, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "roadway", |
| | | title: "å··éå·", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "taskType", |
| | | title: "ä»»å¡ç±»å", |
| | | type: "int", |
| | | width: 90, |
| | | align: "left", |
| | | bind: { key: "taskType", data: [] }, |
| | | }, |
| | | { |
| | | field: "taskState", |
| | | title: "ä»»å¡ç¶æ", |
| | | type: "int", |
| | | width: 150, |
| | | align: "left", |
| | | bind: { key: "taskState", data: [] }, |
| | | }, |
| | | { |
| | | field: "sourceAddress", |
| | | title: "èµ·å§å°å", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "targetAddress", |
| | | title: "ç®æ å°å", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "currentAddress", |
| | | title: "å½åä½ç½®", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "nextAddress", |
| | | title: "ä¸ä¸ä½ç½®", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "productionLine", |
| | | title: "产线", |
| | | type: "string", |
| | | width: 70, |
| | | align: "left", |
| | | bind: { key: "ProductionLine", data: [] } |
| | | }, |
| | | { |
| | | field: "exceptionMessage", |
| | | title: "å¼å¸¸ä¿¡æ¯", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "grade", |
| | | title: "ä¼å
级", |
| | | type: "int", |
| | | width: 60, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "dispatchertime", |
| | | title: "ä»»å¡ä¸åæ¶é´", |
| | | type: "datetime", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "wMSId", |
| | | title: "WMSä»»å¡ä¸»é®", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "remark", |
| | | title: "夿³¨", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "", |
| | | table: "", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | | |
| | |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { "title": "éç¨è½¦å", "field": "carType", type: "like" }, |
| | | { "title": "éç¨è½¦å", "field": "carType", type: "text" }, |
| | | //{ "title": "è´§ä½ç¶æ", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] }, |
| | | { "title": "卿屿§", "field": "mttype", type: "text" }, |
| | | ], |
| | |
| | | { field: 'equipNo', title: '设å¤ç¼å·', type: 'string', width: 110, align: 'left', hidden: true }, |
| | | //{ field: 'wheels_SequenceNum', title: 'åºåå·', type: 'string', width: 110, align: 'left', sort: true, link: true, }, |
| | | { field: 'cltm', title: '车轮æ¡ç ', type: 'string', width: 150, align: 'left' }, |
| | | { field: 'checkType', title: 'ç±»å(è½®/ç)', type: 'string', width: 80, align: 'left' }, |
| | | { field: 'checkType', title: 'ç±»å(è½®/ç)', type: 'string', width: 80, align: 'left', bind: { key: "IscheckType", data: [{key:"1",value:'è½®'},{key:"2",value:'ç'}] } }, |
| | | { field: 'gkzjI1', title: 'æ¯åA1', type: 'string', width: 75, align: 'left' }, |
| | | { field: 'gkzjI2', title: 'æ¯åA2', type: 'string', width: 75, align: 'left' }, |
| | | { field: 'gkzjI3', title: 'æ¯åA3', type: 'string', width: 75, align: 'left' }, |
| | |
| | | WebResponseContent SaveCLinfo(SaveModel saveModel); |
| | | |
| | | WebResponseContent SaveCZInfo(SaveModel saveModel); |
| | | WebResponseContent SaveCZInfo2(SaveModel saveModel); |
| | | } |
| | | } |
| | |
| | | { |
| | | |
| | | Dt_WheelsStock GetSelectionWheelsStock(List<Dt_WheelsStock> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes,string wheelsPosition,string newOrOld); |
| | | |
| | | Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld); |
| | | } |
| | |
| | | [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "è´§ä½å·")] |
| | | public string Locate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶æ 0-å建 1-å¨åº 2-å·²éé
3-é¢éé
4-æå®åºåº |
| | | /// </summary> |
| | | [ImporterHeader(Name = "ç¶æ")] |
| | | [ExporterHeader(DisplayName = "ç¶æ")] |
| | | [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "ç¶æ")] |
| | | public int? Wheels_CurrentStatue { get; set; } = 1; |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public WebResponseContent SaveCZInfo2(SaveModel saveModel) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //å¦å½åå卿ªå¼å§å
¥åºç车轮æå¶å¨çæ°æ®,åç¦æ¢ä¿åæ°æ°æ® 以鲿°æ®æ··ä¹± |
| | | var waitInbound = _CZInfo_MesRepository.QueryFirst(x => x.CurrentStatue == "0"); |
| | | if (waitInbound != null) |
| | | throw new Exception("å½åå卿ªå¼å§å
¥åºçè½¦è½´æ°æ®,请å
䏿¶å¯å¨ååä¿åä¿¡æ¯!"); |
| | | |
| | | //车轴æ¡ç |
| | | string czCode = saveModel.MainData["cztm"].ToString(); |
| | | if (string.IsNullOrEmpty(czCode)) |
| | | throw new Exception($"车轴æ¡ç ä¸è½ä¸ºç©º"); |
| | | |
| | | //è½¦è½´å· |
| | | string czh = saveModel.MainData["czh"].ToString(); |
| | | if (string.IsNullOrEmpty(czh)) |
| | | throw new Exception($"车轴å·ä¸è½ä¸ºç©º"); |
| | | //var clinfo = _InWheels_MesRepository.QueryFirst(x => x.Wheels_code == czCode); |
| | | //if (clinfo != null) throw new Exception("车轮å½å
¥ä¿¡æ¯å·²åå¨"); |
| | | |
| | | //åºåå· |
| | | //string madeUnit = saveModel.MainData["xlh"].ToString(); |
| | | //轮对æ¡ç |
| | | string ldtm = saveModel.MainData["ldtm"].ToString(); |
| | | //车å |
| | | string Cartype = saveModel.MainData["chexing"].ToString(); |
| | | if (string.IsNullOrEmpty(Cartype)) throw new Exception("éé
失败ï¼è½¦è½´è½¦ååæ°ä¸ºç©º"); |
| | | |
| | | //车轴åå· |
| | | string czxh = saveModel.MainData["czxh"].ToString(); |
| | | |
| | | //车轮åå· |
| | | string clxh = saveModel.MainData["clxh"].ToString(); |
| | | |
| | | //卿屿§ |
| | | string mttype = saveModel.MainData["mttype"].ToString(); |
| | | |
| | | //左轮座ç´å¾A1 |
| | | string zlzA1 = saveModel.MainData["zlzA1"].ToString(); |
| | | //左轮座ç´å¾A1 |
| | | string zlzA2 = saveModel.MainData["zlzA2"].ToString(); |
| | | //左轮座ç´å¾A1 |
| | | string zlzA3 = saveModel.MainData["zlzA3"].ToString(); |
| | | //左轮座ç´å¾A |
| | | string zlzA = saveModel.MainData["zlza"].ToString(); |
| | | |
| | | //左轮座ç´å¾B1 |
| | | string zlzB1 = saveModel.MainData["zlzB1"].ToString(); |
| | | //左轮座ç´å¾B1 |
| | | string zlzB2 = saveModel.MainData["zlzB2"].ToString(); |
| | | //左轮座ç´å¾B1 |
| | | string zlzB3 = saveModel.MainData["zlzB3"].ToString(); |
| | | //左轮座ç´å¾B |
| | | string zlzB = saveModel.MainData["zlzb"].ToString(); |
| | | |
| | | //左轮座ç´å¾C1 |
| | | string zlzC1 = saveModel.MainData["zlzC1"].ToString(); |
| | | //左轮座ç´å¾C1 |
| | | string zlzC2 = saveModel.MainData["zlzC2"].ToString(); |
| | | //左轮座ç´å¾C1 |
| | | string zlzC3 = saveModel.MainData["zlzC3"].ToString(); |
| | | //左轮座ç´å¾C |
| | | string zlzC = saveModel.MainData["zlzc"].ToString(); |
| | | |
| | | //å³è½®åº§ç´å¾A1 |
| | | string ylzA1 = saveModel.MainData["ylzA1"].ToString(); |
| | | //å³è½®åº§ç´å¾A1 |
| | | string ylzA2 = saveModel.MainData["ylzA2"].ToString(); |
| | | //å³è½®åº§ç´å¾A1 |
| | | string ylzA3 = saveModel.MainData["ylzA3"].ToString(); |
| | | //å³è½®åº§ç´å¾A |
| | | string ylzA = saveModel.MainData["ylza"].ToString(); |
| | | |
| | | //å³è½®åº§ç´å¾B1 |
| | | string ylzB1 = saveModel.MainData["ylzB1"].ToString(); |
| | | //å³è½®åº§ç´å¾B1 |
| | | string ylzB2 = saveModel.MainData["ylzB2"].ToString(); |
| | | //å³è½®åº§ç´å¾B1 |
| | | string ylzB3 = saveModel.MainData["ylzB3"].ToString(); |
| | | //å³è½®åº§ç´å¾B |
| | | string ylzB = saveModel.MainData["ylzb"].ToString(); |
| | | |
| | | //å³è½®åº§ç´å¾C1 |
| | | string ylzC1 = saveModel.MainData["ylzC1"].ToString(); |
| | | //å³è½®åº§ç´å¾C1 |
| | | string ylzC2 = saveModel.MainData["ylzC2"].ToString(); |
| | | //å³è½®åº§ç´å¾C1 |
| | | string ylzC3 = saveModel.MainData["ylzC3"].ToString(); |
| | | //å³è½®åº§ç´å¾C |
| | | string ylzC = saveModel.MainData["ylzc"].ToString(); |
| | | |
| | | //左轮座ç´å¾ |
| | | string zlzzj = saveModel.MainData["zlzzj"].ToString(); |
| | | //å³è½®åº§ç´å¾ |
| | | string ylzzj = saveModel.MainData["ylzzj"].ToString(); |
| | | |
| | | //æ°æ§ |
| | | string newOrOld = saveModel.MainData["NOdirection"].ToString(); |
| | | if (string.IsNullOrEmpty(newOrOld)) throw new Exception("æªéæ©æ°æ§ç±»å,è¯·éæ©!"); |
| | | |
| | | //车轮ä½ç½® |
| | | string wheelsPosition = saveModel.MainData["wheelsPosition"].ToString(); |
| | | if (string.IsNullOrEmpty(wheelsPosition)) throw new Exception("æªéæ©è½¦è½®ä½ç½®,è¯·éæ©!"); |
| | | |
| | | //左轮ç级 |
| | | string leftLevel = saveModel.MainData["zlzdj"].ToString(); |
| | | if (string.IsNullOrEmpty(leftLevel)) throw new Exception("éé
失败ï¼è½¦è½´å·¦è½®åº§ççº§åæ°ä¸ºç©º"); |
| | | //å³è½®ç级 |
| | | string rightLevel = saveModel.MainData["ylzdj"].ToString(); |
| | | if (string.IsNullOrEmpty(rightLevel)) throw new Exception("éé
失败ï¼è½¦è½´å³è½®åº§ççº§åæ°ä¸ºç©º"); |
| | | |
| | | //ç»´ä¿®ä»»å¡ |
| | | string wxrw = saveModel.MainData["wxrw"].ToString(); |
| | | if (string.IsNullOrEmpty(wxrw)) throw new Exception("éé
失败ï¼ç»´ä¿®ä»»å¡åæ°ä¸ºç©º"); |
| | | |
| | | string level = string.Empty; |
| | | //string rightlevel = string.Empty; |
| | | if ("all".Equals(wheelsPosition)) |
| | | { |
| | | level = LevelChangeHelper.LevelChangeType(leftLevel); |
| | | if (string.IsNullOrEmpty(level)) throw new Exception("ç级转æ¢å¤±è´¥,è¯·æ£æ¥æ¥å£ççº§åæ°"); |
| | | } |
| | | else if ("left".Equals(wheelsPosition)) |
| | | { |
| | | level = LevelChangeHelper.LevelChangeType(leftLevel); |
| | | if (string.IsNullOrEmpty(level)) throw new Exception("ç级转æ¢å¤±è´¥,è¯·æ£æ¥æ¥å£ççº§åæ°"); |
| | | //level = leftLevel; |
| | | } |
| | | else if ("rihgt".Equals(wheelsPosition)) |
| | | { |
| | | level = LevelChangeHelper.LevelChangeType(rightLevel); |
| | | if (string.IsNullOrEmpty(level)) throw new Exception("ç级转æ¢å¤±è´¥,è¯·æ£æ¥æ¥å£ççº§åæ°"); |
| | | //level = rightLevel; |
| | | } |
| | | |
| | | string rw = CheckTaskChangeHelper.CheckTaskChange(wxrw); |
| | | if (string.IsNullOrEmpty(rw)) throw new Exception("维修任å¡è½¬æ¢å¤±è´¥,è¯·æ£æ¥ç»´ä¿®ä»»å¡åæ°"); |
| | | |
| | | if (rw != newOrOld) throw new Exception("éé
失败:éé
æ°æ§è½®ä¸ç»´ä¿®ä»»å¡è§£æä¸ä¸è´"); |
| | | |
| | | Dt_SelectionStandards selectionStandards = _SelectionStandardsRepository.QueryFirst(x => x.CarType.Contains(Cartype) && x.mttype == mttype && x.neworold == newOrOld && level.Contains(x.gkdj)); |
| | | if (selectionStandards == null) throw new Exception($"æ¤è½¦å{Cartype}çéé
æ åå¼å¸¸,è¯·æ ¸å¯¹éé
æ åä¿¡æ¯!"); |
| | | |
| | | Dt_CZInfo_mes CZInfo_Mes = new Dt_CZInfo_mes |
| | | { |
| | | CZTM = czCode, |
| | | CHEXING = Cartype, |
| | | CreateDate = DateTime.Now, |
| | | Creater = "admin", |
| | | CurrentStatue = "1", |
| | | CZH = czh, |
| | | CZXH = czxh, |
| | | LDTM = ldtm, |
| | | MTTYPE = mttype, |
| | | ZLZA1 = zlzA1, |
| | | ZLZA2 = zlzA2, |
| | | ZLZA3 = zlzA3, |
| | | ZLZA = zlzA, |
| | | ZLZB1 = zlzB1, |
| | | ZLZB2 = zlzB2, |
| | | ZLZB3 = zlzB3, |
| | | ZLZB = zlzB, |
| | | ZLZC1 = zlzC1, |
| | | ZLZC2 = zlzC2, |
| | | ZLZC3 = zlzC3, |
| | | ZLZC = zlzC, |
| | | YLZA1 = ylzA1, |
| | | YLZA2 = ylzA2, |
| | | YLZA3 = ylzA3, |
| | | YLZA = ylzA, |
| | | YLZB1 = ylzB1, |
| | | YLZB2 = ylzB2, |
| | | YLZB3 = ylzB3, |
| | | YLZB = ylzB, |
| | | YLZC1 = ylzC1, |
| | | YLZC2 = ylzC2, |
| | | YLZC3 = ylzC3, |
| | | YLZC = ylzC, |
| | | ZLZZJ = zlzzj, |
| | | YLZZJ = ylzzj, |
| | | ZLZDJ = leftLevel, |
| | | YLZDJ = rightLevel, |
| | | WXRW = wxrw |
| | | }; |
| | | |
| | | //å·¦åºåºè½¦è½® |
| | | Dt_WheelsStock leftContainer = null; |
| | | //å³åºåºè½¦è½® |
| | | Dt_WheelsStock rightContainer = null; |
| | | |
| | | //å·¦åºåºè½¦è½® |
| | | Dt_WheelsStock_Old leftContainer2 = null; |
| | | //å³åºåºè½¦è½® |
| | | Dt_WheelsStock_Old rightContainer2 = null; |
| | | |
| | | |
| | | //忏©æ¶é´ |
| | | var hourpara = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_Parameters, SysConfigConst.TempHour); |
| | | int hour = hourpara.ConfigValue.ObjToInt(); |
| | | |
| | | int knum = 1; |
| | | |
| | | |
| | | //æ¾åºææç¬¦åæ¡ä»¶çåºå车轮 |
| | | var WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now); |
| | | if (null != WheelsList && WheelsList.Count > 0) |
| | | { |
| | | knum = 2; |
| | | } |
| | | var Wheelsdata=dt_WheelsStock_OldRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.dqtz_state == CZInfo_Mes.MTTYPE && x.axes_type == clxh && x.repair_item == newOrOld); |
| | | if (null != Wheelsdata && Wheelsdata.Count > 0) |
| | | { |
| | | knum = 3; |
| | | } |
| | | |
| | | |
| | | //x.Wheels_CarType == CZInfo_Mes.CHEXING && x.Wheels_ldtm == CZInfo_Mes.LDTM && selectionStandards.CarType.Contains(x.Wheels_CarType) |
| | | if (knum!=1) |
| | | { |
| | | if ("all".Equals(wheelsPosition) || string.IsNullOrEmpty(wheelsPosition)) |
| | | { |
| | | if (null == leftContainer) |
| | | { |
| | | if(knum==2) |
| | | { |
| | | leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld); |
| | | if (null != leftContainer) |
| | | WheelsList.Remove(leftContainer); |
| | | } |
| | | |
| | | if (knum == 3) |
| | | { |
| | | leftContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "left", newOrOld); |
| | | if (null != leftContainer2) |
| | | Wheelsdata.Remove(leftContainer2); |
| | | } |
| | | |
| | | } |
| | | if (null == rightContainer) |
| | | { |
| | | if(knum ==2) |
| | | { |
| | | rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld); |
| | | if (null != rightContainer) |
| | | WheelsList.Remove(rightContainer); |
| | | } |
| | | |
| | | if(knum == 3) |
| | | { |
| | | rightContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "right", newOrOld); |
| | | if (null != rightContainer2) |
| | | Wheelsdata.Remove(rightContainer2); |
| | | } |
| | | |
| | | } |
| | | //if (null == leftContainer || null == rightContainer) |
| | | } |
| | | else if ("left".Equals(wheelsPosition)) |
| | | { |
| | | if (knum == 2) |
| | | { |
| | | leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld); |
| | | } |
| | | if (knum == 3) |
| | | { |
| | | leftContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "left", newOrOld); |
| | | } |
| | | |
| | | //if (null == leftContainer) |
| | | } |
| | | else if ("right".Equals(wheelsPosition)) |
| | | { |
| | | if (knum == 2) |
| | | { |
| | | rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld); |
| | | } |
| | | if (knum == 3) |
| | | { |
| | | rightContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "right", newOrOld); |
| | | } |
| | | //if (null == rightContainer) |
| | | } |
| | | } |
| | | |
| | | if ("all".Equals(wheelsPosition)) |
| | | { |
| | | if (knum == 2) |
| | | { |
| | | if (null == leftContainer || null == rightContainer) |
| | | return content.Error("æªæ¾å°ä¸¤ä¾§å¯å¹é
çåºåºè½¦è½®,车åï¼" + Cartype); |
| | | } |
| | | if (knum == 3) |
| | | { |
| | | if (null == leftContainer2 || null == rightContainer2) |
| | | return content.Error("æªæ¾å°ä¸¤ä¾§å¯å¹é
çåºåºè½¦è½®,车åï¼" + Cartype); |
| | | } |
| | | } |
| | | |
| | | if (knum == 2) |
| | | { |
| | | if (null != leftContainer || null != rightContainer) |
| | | { |
| | | List<Dt_WheelsStock> wheelsStocks = new List<Dt_WheelsStock>(); |
| | | if (null != leftContainer) |
| | | { |
| | | leftContainer.Wheels_CurrentStatue = 3; |
| | | |
| | | wheelsStocks.Add(leftContainer); |
| | | } |
| | | if (null != rightContainer) |
| | | { |
| | | rightContainer.Wheels_CurrentStatue = 3; |
| | | wheelsStocks.Add(rightContainer); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); //å¼å¯äºå¡ |
| | | |
| | | _WheelsStockRepository.UpdateData(wheelsStocks); //æ´æ°åºåæ°æ® |
| | | |
| | | return content; |
| | | } |
| | | else |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); //åæ»äºå¡ |
| | | return content.Error("æªæ¾å°å¯å¹é
çåºåºè½¦è½®,车åï¼" + Cartype); |
| | | } |
| | | } |
| | | else if (knum == 3) |
| | | { |
| | | if (null != leftContainer2 || null != rightContainer2) |
| | | { |
| | | List<Dt_WheelsStock_Old> wheelsStocks = new List<Dt_WheelsStock_Old>(); |
| | | if (null != leftContainer2) |
| | | { |
| | | leftContainer2.Wheels_CurrentStatue = 3; |
| | | |
| | | wheelsStocks.Add(leftContainer2); |
| | | } |
| | | if (null != rightContainer2) |
| | | { |
| | | rightContainer2.Wheels_CurrentStatue = 3; |
| | | wheelsStocks.Add(rightContainer2); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); //å¼å¯äºå¡ |
| | | |
| | | dt_WheelsStock_OldRepository.UpdateData(wheelsStocks); //æ´æ°åºåæ°æ® |
| | | |
| | | return content; |
| | | } |
| | | else |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); //åæ»äºå¡ |
| | | return content.Error("æªæ¾å°å¯å¹é
çåºåºè½¦è½®,车åï¼" + Cartype); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return content.Error("æªæ¾å°å¯å¹é
çåºåºè½¦è½®,车åï¼" + Cartype); |
| | | } |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return content.Error($"䏿¶å¤±è´¥:{ex.Message}"); |
| | | } |
| | | } |
| | | private Dt_Task CreateOutTask(Dt_WheelsStock wheelsStock, string CZTM) |
| | | { |
| | | CheckInfo checkInfo = new CheckInfo() |
| | |
| | | private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository; |
| | | private readonly IDt_WheelsStockService _WheelsStockService; |
| | | private readonly IDt_CZInfo_mesRepository _CZInfo_MesRepository; |
| | | private readonly IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository; |
| | | |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | |
| | | public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository, IUnitOfWorkManage unitOfWorkManage) |
| | | public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository, IUnitOfWorkManage unitOfWorkManage, IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository) |
| | | { |
| | | _InWheels_MesRepository = inWheels_MesRepository; |
| | | _locationRepository = locationRepository; |
| | |
| | | _WheelsStockService = wheelsStockService; |
| | | _CZInfo_MesRepository = cZInfo_MesRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | this.dt_WheelsStock_OldRepository = dt_WheelsStock_OldRepository; |
| | | } |
| | | } |
| | | } |
| | |
| | | using WIDESEA_Common.ZY; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | |
| | | namespace WIDESEA_StoragIntegrationServices |
| | | { |
| | |
| | | using WIDESEA_Core; |
| | | using WIDESEA_StorageBasicRepository; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | using WIDESEA.Common; |
| | | using WIDESEA_Common.ZY; |
| | | using Autofac.Core; |
| | | using NetTaste; |
| | | |
| | | namespace WIDESEA_StorageBasicService; |
| | | |
| | |
| | | { |
| | | private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository; |
| | | private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository; |
| | | public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository) : base(BaseDal) |
| | | private readonly IToZYService _toZYService; |
| | | public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService) : base(BaseDal) |
| | | { |
| | | _SelectionStandardsRepository = selectionStandardsRepository; |
| | | _WheelsStock_HtyRepository = WheelsStock_HtyRepository; |
| | | _toZYService = toZYService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | return WheelsList.OrderBy(x => x.CreateDate).FirstOrDefault(); |
| | | } |
| | | |
| | | |
| | | |
| | | public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld) |
| | | { |
| | | //è¿çéä¸é |
| | | decimal selectionUpperValue = selectionStandards.upperValue; |
| | | //è¿çéä¸é |
| | | decimal selectionLowerValue = selectionStandards.lowerValue; |
| | | |
| | | decimal mesStand = 0; |
| | | string level = string.Empty; |
| | | |
| | | |
| | | if ("left".Equals(wheelsPosition)) //å¹é
左轮座轮å |
| | | { |
| | | mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ); |
| | | level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ); |
| | | wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList(); |
| | | } |
| | | else //å¦åå¹é
å³è½®åº§è½®å |
| | | { |
| | | mesStand = decimal.Parse(CZInfo_Mes.YLZZJ); |
| | | level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ); |
| | | wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList(); |
| | | } |
| | | foreach (var item in wheelsStocks) |
| | | { |
| | | string Wheels_gkcc = ""; |
| | | string Wheels_gkzja = ""; |
| | | string Wheels_gkzjb = ""; |
| | | string Wheels_gkzjc = ""; |
| | | |
| | | SaveModel saveModel = new SaveModel(); |
| | | saveModel.MainData = new Dictionary<string, object> |
| | | { |
| | | { "cltm", item.wheel_code } |
| | | }; |
| | | WebResponseContent webResponse= _toZYService.ZY_GetCLInfo(saveModel); |
| | | if (webResponse.Status) |
| | | { |
| | | var dta = JsonConvert.DeserializeObject<CLInfo_ZY>(webResponse.Data.ToString()); |
| | | |
| | | Wheels_gkcc = dta.gkcc; |
| | | // æ¯åaçé¢åå¼ |
| | | Wheels_gkzja = dta.GKZJA; |
| | | //æ¯åbçé¢åå¼ |
| | | Wheels_gkzjb = dta.GKZJB; |
| | | //æ¯åcçé¢åå¼ |
| | | Wheels_gkzjc = dta.GKZJC; |
| | | } |
| | | |
| | | if(Wheels_gkcc !="" && Wheels_gkzja!="" && Wheels_gkzjb !="" && Wheels_gkzjc != "") |
| | | { |
| | | //æ¥åºæ¥å¨èå´ä¹å¤çè¿è¡å é¤ |
| | | if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue) |
| | | { |
| | | |
| | | wheelsStocks.Remove(item); |
| | | } |
| | | if (selectionStandards.isCantainGK) |
| | | { |
| | | //æªé¢è¿çéä¸é |
| | | decimal selectionUpperValue_gk = selectionStandards.upperValue_gk; |
| | | //æªé¢è¿çéä¸é |
| | | decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk; |
| | | |
| | | if ("left".Equals(wheelsPosition)) |
| | | { |
| | | decimal ZLZA = decimal.Parse(CZInfo_Mes.ZLZA); |
| | | decimal ZLZB = decimal.Parse(CZInfo_Mes.ZLZB); |
| | | decimal ZLZC = decimal.Parse(CZInfo_Mes.ZLZC); |
| | | |
| | | //夿ååï¼è¿è¡å é¤ |
| | | if (ZLZA - (decimal.Parse(Wheels_gkzja)) < selectionLowerValue_gk && ZLZA - (decimal.Parse(Wheels_gkzja)) > selectionUpperValue_gk |
| | | && ZLZB - (decimal.Parse(Wheels_gkzjb)) < selectionLowerValue_gk && ZLZB - (decimal.Parse(Wheels_gkzjb)) > selectionUpperValue_gk |
| | | && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk) |
| | | { |
| | | wheelsStocks.Remove(item); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA); |
| | | decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB); |
| | | decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC); |
| | | |
| | | if (YLZA - (decimal.Parse(Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(Wheels_gkzja)) <= selectionUpperValue_gk |
| | | && YLZB - (decimal.Parse(Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(Wheels_gkzjb)) <= selectionUpperValue_gk |
| | | && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk) |
| | | { |
| | | wheelsStocks.Remove(item); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | <ProjectReference Include="..\WIDESEA_IStorageOutOrderService\WIDESEA_IStorageOutOrderServices.csproj" /> |
| | | <ProjectReference Include="..\LogLibrary\LogLibrary.csproj" /> |
| | | <ProjectReference Include="..\WIDESEA_IStorageTaskService\WIDESEA_IStorageTaskServices.csproj" /> |
| | | <ProjectReference Include="..\WIDESEA_IStoragIntegrationServices\WIDESEA_IStoragIntegrationServices.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
| | |
| | | { |
| | | return _AppService.SaveCZInfo(input); |
| | | } |
| | | /// <summary> |
| | | /// ä¿åé¢éè½¦è½´ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("SaveCZInfo2"), AllowAnonymous] |
| | | public WebResponseContent SaveCZInfo2([FromBody] SaveModel input) |
| | | { |
| | | return _AppService.SaveCZInfo2(input); |
| | | } |
| | | } |
| | |
| | | //è¿æ¥å符串 |
| | | //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", |
| | | //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WMS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionString": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWMS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionStringWCS": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionStringWCS": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionStringWCS": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |