diff --git a/ruoyi-ui/src/assets/styles/JiHeExpressway.scss b/ruoyi-ui/src/assets/styles/JiHeExpressway.scss index d7e8685d..a955b768 100644 --- a/ruoyi-ui/src/assets/styles/JiHeExpressway.scss +++ b/ruoyi-ui/src/assets/styles/JiHeExpressway.scss @@ -98,7 +98,7 @@ color: #fff; &.is-disabled { - color: #096d8c; + color: #fff; } } diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue index 17b06b5c..c979f600 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/ModifyDutyInformationTable.vue @@ -5,22 +5,30 @@ <Form v-if="!data" :formList="formList" column="2" ref="FormRef" /> <div v-if="peopleList.length" class="people"> - <div v-for=" item in peopleList" :class="{ active: getActive(item) }" :key="item.id" - @click="chooseDutyPerson(item)"> - <span>{{ item.name || '-' }}</span> - <span>{{ item.contactNumber || '-' }}</span> + <div + v-for="item in peopleList" + :class="{ active: getActive(item) }" + :key="item.id" + @click="chooseDutyPerson(item)" + > + <span>{{ item.name || "-" }}</span> + <span>{{ item.contactNumber || "-" }}</span> </div> </div> <div v-else class="people no-data">暂无人员</div> - <img src="./../images/Line.svg"> + <img src="./../images/Line.svg" /> <div class="dutyPeople"> <div :class="['line', { active: active == 'dayShift' }]"> <p @click="active = 'dayShift'">白天值班:</p> <div> - <p v-for="(item, index) in dayShift" :key="`${item.id}_${index}`" @click="removeDutyPerson(item)"> + <p + v-for="(item, index) in dayShift" + :key="`${item.id}_${index}`" + @click="removeDutyPerson(item)" + > {{ item.name }} </p> <div class="no-data" v-if="!dayShift.length">未添加人员</div> @@ -30,17 +38,28 @@ <div :class="['line', { active: active == 'graveyardShift' }]"> <p @click="active = 'graveyardShift'">晚上值班:</p> <div> - <p v-for="(item, index) in graveyardShift" :key="`${index}_${item.id}`" @click="removeDutyPerson(item)"> + <p + v-for="(item, index) in graveyardShift" + :key="`${index}_${item.id}`" + @click="removeDutyPerson(item)" + > {{ item.name }} </p> - <div class="no-data" v-if="!graveyardShift.length">未添加人员</div> + <div class="no-data" v-if="!graveyardShift.length"> + 未添加人员 + </div> </div> </div> </div> </div> </div> <template #footer> - <Button :style="{ backgroundColor: '#C9C9C9' }" @click.native="$emit('close')"> 取消</Button> + <Button + :style="{ backgroundColor: '#0E708B' }" + @click.native="$emit('close')" + > + 取消</Button + > <Button @click.native="submit">确认</Button> </template> </Dialog> @@ -48,34 +67,34 @@ <script> import Dialog from "@screen/components/Dialog/index.vue"; -import Button from "@screen/components/Buttons/Button.vue" -import InputSearch from '@screen/components/InputSearch/index.vue'; -import Form from '@screen/components/FormConfig'; +import Button from "@screen/components/Buttons/Button.vue"; +import InputSearch from "@screen/components/InputSearch/index.vue"; +import Form from "@screen/components/FormConfig"; -import { loadingMessage } from '@screen/utils/common'; +import { loadingMessage } from "@screen/utils/common"; import { getSelectOptionsStation } from "@screen/pages/control/event/businessDataManagement/utils.js"; import request from "@/utils/request"; import { Message } from "element-ui"; export default { - name: 'ModifyDutyInformationTable', + name: "ModifyDutyInformationTable", components: { Dialog, Button, InputSearch, - Form + Form, }, props: { visible: { type: Boolean, - default: false + default: false, }, data: { type: Object, - default: null - } + default: null, + }, }, - emit: ['close'], + emit: ["close"], data() { return { formList: [ @@ -85,11 +104,11 @@ export default { type: "select", required: true, options: { - options: [] + options: [], }, ons: { - change: (id) => this.getPeopleList(id) - } + change: (id) => this.getPeopleList(id), + }, }, { label: "日期:", @@ -97,29 +116,30 @@ export default { required: true, type: "datePicker", options: { - valueFormat: "yyyy-MM-dd" - } + valueFormat: "yyyy-MM-dd", + }, }, ], value2: null, dayShift: [], graveyardShift: [], peopleList: [], - active: 'dayShift' - } + active: "dayShift", + }; }, computed: { visibleModel: { get() { - return this.visible + return this.visible; }, set(bool) { - this.$emit('close', bool); - } + this.$emit("close", bool); + }, }, getActive() { - return data => this[this.active].findIndex(item => item.id === data.id) != -1; - } + return (data) => + this[this.active].findIndex((item) => item.id === data.id) != -1; + }, }, watch: { visible: { @@ -127,33 +147,36 @@ export default { async handler(bool) { if (!bool) return; - this.dayShift = [...this.data?.dayShift || []]; - this.graveyardShift = [...this.data?.graveyardShift || []]; + this.dayShift = [...(this.data?.dayShift || [])]; + this.graveyardShift = [...(this.data?.graveyardShift || [])]; if (!this.data) { const result = await getSelectOptionsStation(2); - this.formList[0].options.options = (result || []); + this.formList[0].options.options = result || []; return; } this.getPeopleList(this.data.station); - } - } + }, + }, }, methods: { chooseDutyPerson(item) { - - const hasInserted = this[this.active].find(_item => _item.employeesId === item.id || _item.id === item.id); + const hasInserted = this[this.active].find( + (_item) => _item.employeesId === item.id || _item.id === item.id + ); if (hasInserted) return Message.warning("人员已存在"); - this[this.active].push(item) + this[this.active].push(item); }, removeDutyPerson(item) { - const index = this[this.active].findIndex(_item => _item.id === item.id); + const index = this[this.active].findIndex( + (_item) => _item.id === item.id + ); - if (index === -1) return;//Message.warning("人员不存在"); + if (index === -1) return; //Message.warning("人员不存在"); this[this.active].splice(index, 1); }, @@ -169,20 +192,23 @@ export default { url: `/business/employees/list`, method: "GET", params: { - organizationId: stationId - } - }).then((result) => { - if (result.code != 200) return Message.error("人员获取失败"); - if (!result.rows?.length) return Message.warning("该驻点下暂无人员"); + organizationId: stationId, + }, + }) + .then((result) => { + if (result.code != 200) return Message.error("人员获取失败"); + if (!result.rows?.length) return Message.warning("该驻点下暂无人员"); - // Message.success("人员获取成功") + // Message.success("人员获取成功") - this.peopleList = result.rows; - }).catch((err) => { - Message.error("人员获取失败") - }).finally(() => { - closeMessage(); - }) + this.peopleList = result.rows; + }) + .catch((err) => { + Message.error("人员获取失败"); + }) + .finally(() => { + closeMessage(); + }); //修改时,获取已排版人员列表 if (this.data) { @@ -192,17 +218,24 @@ export default { data: { station: this.data.station, date: this.data.date, - } - }).then((result) => { - console.log("result.data:", result.data); - this.dayShift = result.data.filter(item => item.scheduling === "1"); - console.log("this.dayShift11:", this.dayShift); - this.graveyardShift = result.data.filter(item => item.scheduling === "2"); - }).catch((err) => { - Message.error("人员获取失败") - }).finally(() => { - closeMessage(); + }, }) + .then((result) => { + console.log("result.data:", result.data); + this.dayShift = result.data.filter( + (item) => item.scheduling === "1" + ); + console.log("this.dayShift11:", this.dayShift); + this.graveyardShift = result.data.filter( + (item) => item.scheduling === "2" + ); + }) + .catch((err) => { + Message.error("人员获取失败"); + }) + .finally(() => { + closeMessage(); + }); } }, updateData(data) { @@ -216,16 +249,16 @@ export default { //添加和修改时,人员id字段来源不一样 employeesId: item.employeesId ? item.employeesId : item.id, scheduling: 1, - station: data.station + station: data.station, })), ...this.graveyardShift.map((item) => ({ employeesId: item.employeesId ? item.employeesId : item.id, scheduling: 2, - station: data.station + station: data.station, })), - ] - } - }) + ], + }, + }); }, async submit() { let data = this.data; @@ -235,38 +268,44 @@ export default { } // console.log("%c [ data ]-202-「ModifyDutyInformationTable.vue」", "font-size:15px; background:#9afce6; color:#deffff;", data, this.value2); - const closeMessage = loadingMessage({ message: "正在保存值班信息111..." }); + const closeMessage = loadingMessage({ + message: "正在保存值班信息111...", + }); if (!this.data) { - this.updateData(data).then((result) => { + this.updateData(data) + .then((result) => { // console.log("%c [ result ]-217-「ModifyDutyInformationTable.vue」", "font-size:15px; background:#335cf6; color:#77a0ff;", result); if (result.code != 200) return Message.error("保存失败"); Message.success("保存成功"); - this.$emit('close') - }).catch((err) => { - Message.error("保存失败") - }).finally(() => { - closeMessage(); + this.$emit("close"); + }) + .catch((err) => { + Message.error("保存失败"); }) + .finally(() => { + closeMessage(); + }); return; - } else { const deleteIds = []; - (this.data.dayShift || []).forEach(item => { - const findIndex = this.dayShift.findIndex(_item => _item.id === item.id); + (this.data.dayShift || []).forEach((item) => { + const findIndex = this.dayShift.findIndex( + (_item) => _item.id === item.id + ); - if (findIndex === -1) deleteIds.push(item.id) + if (findIndex === -1) deleteIds.push(item.id); }); - (this.data.graveyardShift || []).forEach(item => { - const findIndex = this.graveyardShift.findIndex(_item => _item.id === item.id); - - - if (findIndex === -1) deleteIds.push(item.id) - }) + (this.data.graveyardShift || []).forEach((item) => { + const findIndex = this.graveyardShift.findIndex( + (_item) => _item.id === item.id + ); + if (findIndex === -1) deleteIds.push(item.id); + }); // Promise.allSettled([ // deleteIds?.length ? request({ @@ -285,51 +324,59 @@ export default { // }) //如果有需要删除的人员,先删除,再更新 - if(deleteIds?.length){ + if (deleteIds?.length) { request({ url: `/business/shifts/${deleteIds.join()}`, method: "DELETE", - data: {} - }).then((result) => { - if (result.code != 200) return Message.error("修改失败"); - - this.updateData(this.data).then((result) => { + data: {}, + }) + .then((result) => { if (result.code != 200) return Message.error("修改失败"); - Message.success("修改成功"); + this.updateData(this.data) + .then((result) => { + if (result.code != 200) return Message.error("修改失败"); - this.$emit('close') - }).catch((err) => { - Message.error("修改失败") - }).finally(() => { - closeMessage(); + Message.success("修改成功"); + + this.$emit("close"); + }) + .catch((err) => { + Message.error("修改失败"); + }) + .finally(() => { + closeMessage(); + }); }) - }).catch((err) => { - Message.error("删除失败") - }).finally(() => { - closeMessage(); - }) - }else{ - this.updateData(this.data).then((result) => { - if (result.code != 200) return Message.error("修改失败"); + .catch((err) => { + Message.error("删除失败"); + }) + .finally(() => { + closeMessage(); + }); + } else { + this.updateData(this.data) + .then((result) => { + if (result.code != 200) return Message.error("修改失败"); - Message.success("修改成功"); + Message.success("修改成功"); - this.$emit('close') - }).catch((err) => { - Message.error("修改失败") - }).finally(() => { - closeMessage(); - }) + this.$emit("close"); + }) + .catch((err) => { + Message.error("修改失败"); + }) + .finally(() => { + closeMessage(); + }); } - } - } - } -} + }, + }, +}; </script> -<style lang='scss' scoped> +<style lang="scss" scoped> .ModifyDutyInformationTable { width: 947px; height: 658px; @@ -343,7 +390,6 @@ export default { gap: 24px; align-items: center; justify-content: space-between; - } .body { @@ -363,14 +409,14 @@ export default { flex: 1; overflow-y: auto; - >div { - background: #0D5F79; + > div { + background: #0d5f79; height: 65px; border-radius: 2px; font-size: 16px; font-family: PingFang SC, PingFang SC; font-weight: 500; - color: #FFFFFF; + color: #ffffff; letter-spacing: 1px; display: flex; @@ -382,7 +428,7 @@ export default { } .active { - background: linear-gradient(180deg, #00AEE5 0%, #0086B1 100%); + background: linear-gradient(180deg, #00aee5 0%, #0086b1 100%); } } @@ -393,11 +439,15 @@ export default { .active { p { - background: linear-gradient(180deg, rgba(1, 167, 220, 0) 0%, #01A7DC 100%); + background: linear-gradient( + 180deg, + rgba(1, 167, 220, 0) 0%, + #01a7dc 100% + ); } } - >div { + > div { display: flex; gap: 9px; border-radius: 2px; @@ -405,7 +455,11 @@ export default { overflow: hidden; p { - background: linear-gradient(180deg, rgba(0, 148, 255, 0) 0%, rgba(37, 124, 255, .15) 100%); + background: linear-gradient( + 180deg, + rgba(0, 148, 255, 0) 0%, + rgba(37, 124, 255, 0.15) 100% + ); height: 42px; display: flex; align-items: center; @@ -414,14 +468,14 @@ export default { font-size: 16px; font-family: PingFang SC, PingFang SC; font-weight: 500; - color: #FFFFFF; + color: #ffffff; border-radius: 2px; cursor: pointer; } - >div { + > div { flex: 1; display: flex; gap: 9px; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/OperateRecord.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/OperateRecord.vue index 061f189b..88316588 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/OperateRecord.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/dutyOfficer/components/OperateRecord.vue @@ -1,13 +1,21 @@ <template> <Dialog v-model="visibleModel" title="操作记录"> <div class="OperateRecord"> - <TimeLine v-if="timeLine2List.length" :data="timeLine2List" direction="right" /> + <TimeLine + v-if="timeLine2List.length" + :data="timeLine2List" + direction="right" + /> <div class="no-data" v-else>暂无操作记录</div> <div class="bottom"> - <Button @click.native="$emit('close')">确认</Button> - <Button :style="{ backgroundColor: '#C9C9C9' }" @click.native="$emit('close')"> 取消</Button> + <Button + :style="{ backgroundColor: '#0E708B' }" + @click.native="$emit('close')" + > + 取消</Button + ><Button @click.native="$emit('close')">确认</Button> </div> </div> </Dialog> @@ -16,28 +24,28 @@ <script> import Dialog from "@screen/components/Dialog/index.vue"; import TimeLine from "@screen/components/TimeLine/TimeLine2/index.vue"; -import Button from "@screen/components/Buttons/Button.vue" +import Button from "@screen/components/Buttons/Button.vue"; import request from "@/utils/request"; export default { - name: 'OperateRecord', + name: "OperateRecord", components: { Dialog, Button, - TimeLine + TimeLine, }, props: { visible: { type: Boolean, - default: false + default: false, }, data: { type: Object, - default: null - } + default: null, + }, }, - emit: ['close'], + emit: ["close"], data() { return { // timeLine2List: Array.from({ length: 6 }).map(() => ({ @@ -47,19 +55,19 @@ export default { // desc: "描述性文字文字文字文字文字文字文字文字描述性文字文字文字文字文字文字文字文字", // posts: '淄博发展公司管理员' // })), - timeLine2List: [] - } + timeLine2List: [], + }; }, computed: { visibleModel: { get() { if (this.visible) this.getData(); - return this.visible + return this.visible; }, set(bool) { - this.$emit('close', bool); - } - } + this.$emit("close", bool); + }, + }, }, methods: { getData() { @@ -69,26 +77,26 @@ export default { data: { date: this.data.date, station: this.data.station, - } + }, }) - .then(result => { + .then((result) => { if (result.code != 200) return Message.error("获取失败"); - this.timeLine2List = result.rows.map(item => ({ + this.timeLine2List = result.rows.map((item) => ({ time: item.operationTime, name: item.nickName, desc: item.modifyContent, - posts: "操作员" - })) + posts: "操作员", + })); }) .catch(() => { - Message.error("获取失败") - }) - } - } -} + Message.error("获取失败"); + }); + }, + }, +}; </script> -<style lang='scss' scoped> +<style lang="scss" scoped> .OperateRecord { width: 540px; height: 518px; @@ -102,7 +110,7 @@ export default { gap: 15px; justify-content: end; - >div { + > div { width: 96px; } } diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/components/AddNEditDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/components/AddNEditDialog.vue index e1ef72c9..30f381cc 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/components/AddNEditDialog.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/components/AddNEditDialog.vue @@ -1,62 +1,70 @@ <template> - <Dialog v-model="modelVisible" :title="data ? '修改' : '新增'"> - <div class='AddNEditDialog'> - <Form :value="formData" class="form" ref="FormConfigRef" :formList="formList" column="1" labelWidth="120px" /> + <Dialog v-model="modelVisible" :title="data ? '修改' : '新增11'"> + <div class="AddNEditDialog"> + <Form + :value="formData" + class="form" + ref="FormConfigRef" + :formList="formList" + column="1" + labelWidth="120px" + /> </div> <template #footer> - <Button style="background-color: rgba(0, 179, 204, .3);" @click.native="modelVisible = false, submitting = false"> + <Button + style="background-color: rgba(0, 179, 204, 0.3)" + @click.native="(modelVisible = false), (submitting = false)" + > 取消 </Button> - <Button @click.native="handleSubmit" :loading="submitting"> - 确定 - </Button> + <Button @click.native="handleSubmit" :loading="submitting"> 确定 </Button> </template> </Dialog> </template> <script> import Dialog from "@screen/components/Dialog/index.vue"; -import Button from "@screen/components/Buttons/Button.vue" -import Form from '@screen/components/FormConfig'; +import Button from "@screen/components/Buttons/Button.vue"; +import Form from "@screen/components/FormConfig"; import request from "@/utils/request"; import { Message } from "element-ui"; -import { addEditFormList } from "./../data" -import { stakeMarkToArray, findPathIdByTreeId } from "@screen/utils/index.js" +import { addEditFormList } from "./../data"; +import { stakeMarkToArray, findPathIdByTreeId } from "@screen/utils/index.js"; export default { - name: 'AddNEditDialog', + name: "AddNEditDialog", components: { Dialog, Button, - Form + Form, }, model: { - prop: 'visible', - event: "update:value" + prop: "visible", + event: "update:value", }, props: { visible: Boolean, - data: Object + data: Object, }, - inject: ['setCurrentPage'], + inject: ["setCurrentPage"], data() { return { submitting: false, formData: {}, - formList: addEditFormList - } + formList: addEditFormList, + }; }, computed: { modelVisible: { get() { - return this.visible + return this.visible; }, set(val) { - this.$emit('update:value', val) - } - } + this.$emit("update:value", val); + }, + }, }, watch: { modelVisible: { @@ -64,16 +72,18 @@ export default { handler(bool) { if (!bool) return; - this.formData = !this.data ? {} : { - ...this.data, - deptId: [], - endStakeMark: stakeMarkToArray(this.data.endStakeMark), - startStakeMark: stakeMarkToArray(this.data.startStakeMark), - } + this.formData = !this.data + ? {} + : { + ...this.data, + deptId: [], + endStakeMark: stakeMarkToArray(this.data.endStakeMark), + startStakeMark: stakeMarkToArray(this.data.startStakeMark), + }; this.getSelectOptions(); - } - } + }, + }, }, methods: { getSelectOptions() { @@ -85,62 +95,73 @@ export default { request({ url: `/business/roadSection/roadList`, method: "POST", - data: {} + data: {}, }), - ]) - .then(([departmentData, roadData]) => { - - if (departmentData.status != 'rejected' && departmentData.value.code == 200) { - this.formList[0].options.options = departmentData.value.data; - - if (this.data?.deptId) this.formData.deptId = findPathIdByTreeId(departmentData.value.data, this.data.deptId); - - this.$refs.FormConfigRef.reset(true) - } - if (roadData.status != 'rejected' && roadData.value.code == 200) { - this.formList[1].options.options = roadData.value.data.map(item => ({ key: item.id, label: item.roadName })); - } - - }); + ]).then(([departmentData, roadData]) => { + if ( + departmentData.status != "rejected" && + departmentData.value.code == 200 + ) { + this.formList[0].options.options = departmentData.value.data; + + if (this.data?.deptId) + this.formData.deptId = findPathIdByTreeId( + departmentData.value.data, + this.data.deptId + ); + + this.$refs.FormConfigRef.reset(true); + } + if (roadData.status != "rejected" && roadData.value.code == 200) { + this.formList[1].options.options = roadData.value.data.map( + (item) => ({ key: item.id, label: item.roadName }) + ); + } + }); }, handleSubmit() { - this.$refs.FormConfigRef.validate() - .then((data) => { - this.submitting = true; + this.$refs.FormConfigRef.validate().then((data) => { + this.submitting = true; - if (data.startStakeMark?.[0]) data.startStakeMark = `K${data.startStakeMark[0]}+${data.startStakeMark[1]}`; - if (data.endStakeMark?.[0]) data.endStakeMark = `K${data.endStakeMark[0]}+${data.endStakeMark[1]}`; - if (data.deptId) data.deptId = data.deptId.slice(-1)[0]; - if (this.data) data.id = this.data.id; + if (data.startStakeMark?.[0]) + data.startStakeMark = `K${data.startStakeMark[0]}+${data.startStakeMark[1]}`; + if (data.endStakeMark?.[0]) + data.endStakeMark = `K${data.endStakeMark[0]}+${data.endStakeMark[1]}`; + if (data.deptId) data.deptId = data.deptId.slice(-1)[0]; + if (this.data) data.id = this.data.id; - request({ - url: `/business/roadSection`, - method: this.data ? 'PUT' : 'POST', - data - }) - .then(result => { - if (result.code != 200) return Message.error(`提交失败!`); + request({ + url: `/business/roadSection`, + method: this.data ? "PUT" : "POST", + data, + }) + .then((result) => { + if (result.code != 200) return Message.error(`提交失败!`); - Message.success(`提交成功!`); + Message.success(`提交成功!`); - this.modelVisible = false; + this.modelVisible = false; - this.setCurrentPage(1) - }) - .catch((err) => { - console.log("%c [ err ]-110-「DeviceControlDialog.vue」", "font-size:15px; background:#547bf2; color:#98bfff;", err); - Message.error(`提交失败!`); - }) - .finally(() => { - this.submitting = false; - }) - }) - } + this.setCurrentPage(1); + }) + .catch((err) => { + console.log( + "%c [ err ]-110-「DeviceControlDialog.vue」", + "font-size:15px; background:#547bf2; color:#98bfff;", + err + ); + Message.error(`提交失败!`); + }) + .finally(() => { + this.submitting = false; + }); + }); + }, }, -} +}; </script> -<style lang='scss' scoped> +<style lang="scss" scoped> .AddNEditDialog { width: 450px; display: flex; diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/data.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/data.js index 88ca4ce7..e5916cde 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/data.js +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/businessDataManagement/views/jurisdictionalManagement/data.js @@ -4,7 +4,7 @@ import { formList } from "../../../dispatch/EventDetailDialog/data"; export const searchFormList = [ PresetFormItems.startStation, - PresetFormItems.endStation + PresetFormItems.endStation, ]; //里程计算 @@ -13,7 +13,7 @@ const mileCal = (data) => { const start = startStakeMark[0] + "." + Number(startStakeMark[1]); const end = endStakeMark[0] + "." + Number(endStakeMark[1]); data.mileage = (Number(end) - Number(start)).toFixed(3); -} +}; export const addEditFormList = [ { @@ -54,7 +54,7 @@ export const addEditFormList = [ input(value, ...args) { const { data, formList } = args.slice(-1)[0]; mileCal(data); - } + }, }, }, { @@ -62,11 +62,11 @@ export const addEditFormList = [ input(value, ...args) { const { data, formList } = args.slice(-1)[0]; mileCal(data); - } + }, }, }, - ] - } + ], + }, }), merge(cloneDeep(PresetFormItems.endStation), { required: true, @@ -77,7 +77,7 @@ export const addEditFormList = [ input(value, ...args) { const { data, formList } = args.slice(-1)[0]; mileCal(data); - } + }, }, }, { @@ -85,11 +85,11 @@ export const addEditFormList = [ input(value, ...args) { const { data, formList } = args.slice(-1)[0]; mileCal(data); - } + }, }, }, - ] - } + ], + }, }), { @@ -110,6 +110,9 @@ export const addEditFormList = [ }, type: "InputNumber", key: "mileage", + options: { + min: 0, + }, }, ], }, diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/assets/charts.js index 6722d795..12ef8e1f 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/assets/charts.js +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/assets/charts.js @@ -6,15 +6,6 @@ let options = { valueFormatter: (value) => { return value + "%"; }, - // backgroundColor: "rgba(17,95,182,0.5)", - // textStyle: { - // color: "#fff", - // }, - // formatter: function (params) { - // return ( - // params[0].name + params[0].seriesName + ": " + params[0].value + "%" - // ); - // }, }, grid: { left: "2%", @@ -36,12 +27,8 @@ let options = { opacity: 1, }, }, - // lineStyle: { - // show: true, - // type: 'solid' - // }, axisLabel: { - interval: 0, + interval: "auto", textStyle: { color: "rgba(255,255,255,0.8)", fontSize: 14, @@ -51,9 +38,7 @@ let options = { }, yAxis: [ { - type: "category", - minInterval: 20, - maxInterval: 20, + // type: "category", name: "", nameTextStyle: { align: "left", @@ -84,59 +69,23 @@ let options = { fontSize: 14, }, }, - data: ["0", "3", "6", "9", "12", "15", "18"], }, ], legend: { top: "5%", - right: "5%", - icon: "rect", - itemWidth: 25, - itemHeight: 10, + right: "0", textStyle: { color: "#fff", fontSize: 14, }, - lineStyle: { - show: false, - color: "#00E4BB", + itemStyle: { + color: "#00D6B2", }, - data: [ - { - name: "高清网络球型摄像机", - itemStyle: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "#00E4BB", // 0% 处的颜色 - }, - { - offset: 1, - color: "#003B4E", // 100% 处的颜色 - }, - ], - false - ), - }, - }, - { - name: "增涨率", - itemStyle: { - color: "#755400", - }, - }, - ], - itemGap: 12, // 设置间距 }, series: [ // 下半截柱状图 { - name: "在线率", + name: "高清网络枪型固定摄像机", type: "bar", barWidth: 12, barGap: "-100%", @@ -165,7 +114,6 @@ let options = { ); }, }, - data: [], }, { diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/index.vue index a5f44980..1dc3ec37 100644 --- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/index.vue +++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/index.vue @@ -347,45 +347,56 @@ export default { }, initQueryChart() { this.setStatus("01", "doing"); - + let data = this.searchFormList[1].options.options; + let typeLabel = ""; + console.log("data", data); + data.forEach((item) => { + if (item.value == this.typeQuery) { + typeLabel = item.label; + } + }); getSystemStatusList({ startTime: this.startTime, time: this.time, type: this.typeQuery, }).then((res) => { if (res.code == 200) { - if (res.data && Object.keys(res.data).length > 0) { - this.setStatus("01", "finish"); - - let origin = res.data; - - let startStamp = +moment(this.startTime).startOf("day").format("x"); - let endStamp = +moment(this.time).endOf("day").format("x"); - let oneDay = 86400000; - let daysTotal = Math.ceil((endStamp - startStamp) / oneDay); - let queryChartData = []; - let dataX = []; - let data0 = []; - let data1 = []; - for (let i = 0; i < daysTotal; i++) { - let ts = startStamp + i * oneDay; - let date = moment(ts).format("YYYY-M-D"); - let val = origin[date] ? +origin[date].replace("%", "") : 0; - dataX.push(moment(ts).format("MM-DD")); - data0.push(val); - data1.push(100); - } - chartsStatistics.xAxis.data = dataX; - chartsStatistics.series[0].data = data0; - chartsStatistics.series[1].data = data1; - chartsStatistics.yAxis[0].name = "在线率(%)"; - - this.$nextTick(() => { - this.queryChart.setOption(chartsStatistics); - }); - } else { - this.setStatus("01", "empty"); + console.log("res.data", res.data); + // if (res.data && Object.keys(res.data).length > 0) { + console.log("res.data", res.data); + this.setStatus("01", "finish"); + let origin = res.data; + let startStamp = +moment(this.startTime).startOf("day").format("x"); + let endStamp = +moment(this.time).endOf("day").format("x"); + let oneDay = 86400000; + let daysTotal = Math.ceil((endStamp - startStamp) / oneDay); + let queryChartData = []; + let dataX = []; + let data0 = []; + let data1 = []; + for (let i = 0; i < daysTotal; i++) { + let ts = startStamp + i * oneDay; + let date = moment(ts).format("YYYY-M-D"); + let val = origin[date] ? +origin[date].replace("%", "") : 0; + dataX.push(moment(ts).format("MM-DD")); + data0.push(val); + data1.push(100); } + chartsStatistics.xAxis.data = dataX; + chartsStatistics.series[0].data = data0; + chartsStatistics.series[0].name = typeLabel; + chartsStatistics.series[1].data = data1; + chartsStatistics.yAxis[0].name = "在线率(%)"; + chartsStatistics.legend = { + show: true, + }; + + this.$nextTick(() => { + this.queryChart.setOption(chartsStatistics); + }); + // } else { + // this.setStatus("01", "empty"); + // } } }); }, @@ -400,18 +411,18 @@ export default { pageSize: pageSize, }).then((res) => { if (res.code == 200) { - if (res.rows && res.rows.length > 0) { - this.setStatus("02", "finish"); - this.pageIndex = pageIndex; - this.pageSize = pageSize; - this.pageTotal = res.total; - this.tableData = res.rows; - this.tableData.forEach((it, index) => { - it.order = (pageIndex - 1) * pageSize + index + 1; - }); - } else { - this.setStatus("02", "empty"); - } + // if (res.rows && res.rows.length > 0) { + this.setStatus("02", "finish"); + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.pageTotal = res.total; + this.tableData = res.rows; + this.tableData.forEach((it, index) => { + it.order = (pageIndex - 1) * pageSize + index + 1; + }); + // } else { + // this.setStatus("02", "empty"); + // } } }); }, diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index e48920d2..026fa45b 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -53,9 +53,10 @@ module.exports = { // target: `http://10.168.69.255:8087`, //正晨后台 连现场物联 刘文阁 // target: `http://10.168.78.135:8087`, //王钦 // target: `http://10.168.66.196:8087`, //正晨后台 连现场物联 刘文阁2 - target: `http://10.168.68.42:8087`, //王思祥 + // target: `http://10.168.68.42:8087`, //王思祥 // target: `http://10.168.65.194:8087`, //赵祥龙 // target: `http://10.168.65.156:8097`, //孟 + target: `http://10.168.65.103:8097`, changeOrigin: true, pathRewrite: { ["^" + process.env.VUE_APP_BASE_API]: "",