From 51e18e190dafdec70dc1f4a3a9ecd76fb2116726 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期六, 12 十月 2024 16:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png | 0 screen/src/assets/images/energy_ef/car_zaitu@2x.png | 0 screen/src/assets/images/energy_ef/ruku_task.png | 0 admin/src/api/system/sms.js | 8 screen/src/assets/images/energy_ef/map_car_kongxian@2x.png | 0 pda/utils/config.js | 4 screen/src/assets/images/energy_ef/chuku_task.png | 0 screen/src/assets/images/energy_ef/map_car_lixian@2x.png | 0 screen/src/assets/images/energy_ef/car_kongxian@2x.png | 0 screen/src/views/EnergyConsum.vue | 497 +++++++++-------- admin/.env.development | 5 screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png | 0 admin/src/components/common/RichEditor.vue | 9 screen/src/assets/images/energy_ef/bg@2x.png | 0 h5/utils/config.js | 4 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java | 2 admin/src/views/platform/LogisticsRecord/leaveAuth.vue | 9 screen/package.json | 1 screen/src/views/LogisticsEfficiency.vue | 637 ++++++++++++++++++++++ screen/src/router/index.js | 7 screen/src/assets/images/energy_ef/chuku_task_ac.png | 0 screen/src/assets/images/energy_ef/map_car_zaitu@2x.png | 0 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java | 13 admin/src/views/index.vue | 19 admin/src/views/business/visitorSources.vue | 30 screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png | 0 admin/src/views/platform/LogisticsRecord/subscribe.vue | 14 screen/src/assets/images/energy_ef/car_lixian@2x.png | 0 screen/src/assets/images/energy_ef/ic_bili@2x.png | 0 screen/src/assets/images/maintitle.gif | 0 screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png | 0 admin/src/views/platform/LogisticsRecord/waybill.vue | 17 server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 99 --- admin/src/views/system/smsMessage.vue | 53 + screen/src/views/PlatformCall.vue | 1 h5/pages/staff/task/driver.vue | 6 pda/pages/index/control.vue | 2 screen/src/assets/images/energy_ef/ruku_task_ac.png | 0 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java | 33 + admin/src/views/task/visSubDetail.vue | 4 screen/src/assets/images/energy_ef/chuku_ic_car@2x.png | 0 admin/src/components/common/QueryForm/queryForm.vue | 59 - admin/src/views/task/driverDetail.vue | 4 admin/src/views/platform/queueUp.vue | 7 admin/src/views/platform/components/PlatformSign.vue | 19 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java | 23 /dev/null | 67 -- screen/src/assets/images/energy_ef/china@2x.png | 0 admin/src/api/workbench/index.js | 6 admin/src/views/business/relativeMember.vue | 8 pda/manifest.json | 2 admin/src/views/business/internalMember.vue | 2 52 files changed, 1,166 insertions(+), 505 deletions(-) diff --git a/admin/.env.development b/admin/.env.development index 8dd310d..0571e3b 100644 --- a/admin/.env.development +++ b/admin/.env.development @@ -2,6 +2,7 @@ NODE_ENV = 'development' VUE_APP_API_URL = 'http://localhost:10010' -# VUE_APP_API_URL = 'http://192.168.0.103:10010' -VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' +# VUE_APP_API_URL = 'http://192.168.0.139:10010' +# VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface' +VUE_APP_API_URL = 'https://dmtest.ahapp.net/antai_admin_interface/' diff --git a/admin/src/api/system/sms.js b/admin/src/api/system/sms.js index e0f700b..9a34d4d 100644 --- a/admin/src/api/system/sms.js +++ b/admin/src/api/system/sms.js @@ -8,3 +8,11 @@ export function SmsStatusUpdate (data) { return request.post('/visitsAdmin/cloudService/business/smsConfig/updateById', data) } +// 鐭俊閫氱煡 鎵归噺鐘舵�佹洿鏂� +export function SmsStatussUpdate (data) { + return request.get('/visitsAdmin/cloudService/business/smsConfig/updateStatus/batch', { + params: { + ...data + } + }) +} diff --git a/admin/src/api/workbench/index.js b/admin/src/api/workbench/index.js index 815b79b..e6dcdcb 100644 --- a/admin/src/api/workbench/index.js +++ b/admin/src/api/workbench/index.js @@ -23,4 +23,10 @@ // 浠诲姟涓績澶撮儴 export function getWorkbenchTaskHead (data) { return request.post('/visitsAdmin/cloudService/business/staging/taskCenterHeadPC', data) +} +// pc宸ヤ綔鍙� +export function getWorkbenchData (data) { + return request.get('/visitsAdmin/cloudService/business/staging/pCWorkPlatformData', { + params: {...data } + }) } \ No newline at end of file diff --git a/admin/src/components/common/QueryForm/queryForm.vue b/admin/src/components/common/QueryForm/queryForm.vue index 9eedeab..c56d064 100644 --- a/admin/src/components/common/QueryForm/queryForm.vue +++ b/admin/src/components/common/QueryForm/queryForm.vue @@ -2,15 +2,13 @@ <div class="doumee-filter"> <el-form inline label-suffix="锛�" @submit.native.prevent> <template v-for="(item, index) in queryFormConfig.formItems"> - <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :key="item.filed" - :label="item.label"> + <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :key="item.filed"> <el-input v-model="searchForm[item.filed]" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" - :placeholder="item.placeholder ? item.placeholder : '璇疯緭鍏�' + item.label" class="w200" + :placeholder="item.label" class="w200" @change="changeForm(item.filed)" @keyup.enter.native="handlekeyup(item.keyup || false)" /> </el-form-item> - <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :key="item.label" - :label="item.label"> + <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :key="item.label"> <el-input v-model="searchForm[item.filedStrt]" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" :placeholder="item.start" style="width: 150px" /> @@ -19,49 +17,42 @@ :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" :placeholder="item.end" style="width: 150px" /> </el-form-item> - <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :key="item.filed" - :label="item.label"> + <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :key="item.filed"> <el-select v-model="searchForm[item.filed]" :filterable="item.filterable || true" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" - :placeholder="item.placeholder ? item.placeholder : '璇烽�夋嫨' + item.label" class="w200" + :placeholder="item.label" class="w200" @change="changeForm(item.filed)"> <el-option v-for="opt, i in item.options" :key="i" :value="item.valueCode ? opt[item.valueCode] : opt.value" :label="item.labelCode ? opt[item.labelCode] : opt.label" /> </el-select> </el-form-item> - <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :key="item.filed" - :label="item.label || '鏃ユ湡'"> + <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :key="item.filed"> <el-date-picker v-model="searchForm[item.filed]" type="date" value-format="yyyy-MM-dd" class="w200" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" - :placeholder="item.placeholder || '璇烽�夋嫨鏃ユ湡'" :picker-options="item.pickerOptions || {}" + :placeholder="item.label" :picker-options="item.pickerOptions || {}" @change="changeForm(item.filed)" /> </el-form-item> - <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :key="item.filed" - :label="item.label || ''"> + <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :key="item.filed"> <el-date-picker v-model="searchForm[item.filed]" value-format="yyyy-MM-dd" type="daterange" range-separator="鑷�" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" :start-placeholder="item.start || ''" :end-placeholder="item.end || ''" :picker-options="item.pickerOptions || {}" class="w400" @change="changeForm(item.filed)" /> </el-form-item> - <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :key="item.filed" - :label="item.label || '閫夋嫨鏃堕棿'"> + <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :key="item.filed"> <el-time-picker v-model="searchForm[item.filed]" is-range range-separator="鑷�" format="HH:mm" value-format="HH:mm" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" class="w400" @change="changeForm(item.filed)" /> </el-form-item> - <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :key="item.filed" - :label="item.label || '閫夋嫨鏃ユ湡'"> + <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :key="item.filed"> <el-date-picker v-model="searchForm[item.filed]" format="yyyy-MM-dd HH:mm:ss" - value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" - :default-time="['00:00:00', '23:59:59']" + value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" :default-time="['00:00:00', '23:59:59']" :picker-options="item.pickerOptions || pickerOptions" range-separator="鑷�" :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true" :start-placeholder="item.start || '寮�濮嬫椂闂�'" :end-placeholder="item.end || '缁撴潫鏃堕棿'" class="w400" @change="changeForm(item.filed)" /> </el-form-item> - <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :key="item.filed" - :label="item.label"> + <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :key="item.filed"> <slot :name="item.filed" /> </el-form-item> </template> @@ -100,13 +91,13 @@ default: () => { } } }, - data () { + data() { return { showZk: false, pickerOptions: { shortcuts: [{ text: '杩�7澶�', - onClick (picker) { + onClick(picker) { const end = new Date() const start = new Date() start.setTime(end.getTime() - 3600 * 1000 * 24 * 6) @@ -115,7 +106,7 @@ }, { text: '杩�30澶�', - onClick (picker) { + onClick(picker) { const end = new Date() const start = new Date() start.setTime(end.getTime() - 3600 * 1000 * 24 * 29) @@ -124,7 +115,7 @@ }, { text: '杩�60澶�', - onClick (picker) { + onClick(picker) { const end = new Date() const start = new Date() start.setTime(end.getTime() - 3600 * 1000 * 24 * 59) @@ -133,14 +124,14 @@ }, { text: '杩�90澶�', - onClick (picker) { + onClick(picker) { const end = new Date() const start = new Date() start.setTime(end.getTime() - 3600 * 1000 * 24 * 89) picker.$emit('pick', [start, end]) } }], - disabledDate (time) { + disabledDate(time) { var curDate = new Date(new Date().toLocaleDateString()).getTime() var preDate = new Date(curDate + 24 * 60 * 60 * 1000 - 1) return time.getTime() > preDate @@ -151,31 +142,31 @@ emits: ['input', 'handleQuery', 'clear'], computed: { searchForm: { - get () { + get() { return this.value }, - set (value) { + set(value) { this.$emit('input', value) } } }, methods: { - handleQuery () { + handleQuery() { this.$emit('handleQuery') }, - handlekeyup (pd) { + handlekeyup(pd) { if (pd) { this.$emit('handleQuery') } }, - changeForm (filed) { + changeForm(filed) { this.$emit('changeForm', filed) }, - zkBtn () { + zkBtn() { this.showZk = !this.showZk this.$emit('zkBtn', this.zk) }, - clear () { + clear() { this.$emit('clear') } } diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue index 09786fb..d144c66 100644 --- a/admin/src/components/common/RichEditor.vue +++ b/admin/src/components/common/RichEditor.vue @@ -1,7 +1,7 @@ <template> <div :style="styleEditor"> <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" /> - <Editor style="height: 300px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode" + <Editor style="max-height: 300px;min-height: 100px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode" @onCreated="onCreated" @onChange="onChange" /> </div> </template> @@ -10,6 +10,7 @@ import Vue from 'vue' import { Editor, Toolbar } from '@wangeditor/editor-for-vue' import { Loading } from 'element-ui'; +let loadingInstance = null export default Vue.extend({ props: { richData: { // 鐖剁粍浠朵紶閫掔殑鏁版嵁 @@ -149,7 +150,7 @@ timeout: 10 * 1000, //10 绉� // 涓婁紶鍓� onBeforeUpload(files) { - Loading.service({ + loadingInstance = Loading.service({ lock: true, text: '涓婁紶涓�...', spinner: 'el-icon-loading', @@ -162,7 +163,7 @@ console.log(res); // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊 // 鍏堝叧闂瓑寰呯殑Message - Loading.service({ + loadingInstance = Loading.service({ lock: true, text: '涓婁紶涓�...', spinner: 'el-icon-loading', @@ -187,6 +188,7 @@ // 鍗曚釜鏂囦欢涓婁紶澶辫触 onFailed(file, res) { console.log(`${file.originalFilename} 涓婁紶澶辫触`, res); + loadingInstance.close(); }, // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁� onProgress(progress) { @@ -195,6 +197,7 @@ }, // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂 onError(file, err, res) { + loadingInstance.close(); console.log(`${file.originalFilename} 涓婁紶鍑洪敊`, err, res); } }, diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue index f0568a1..ba0ad77 100644 --- a/admin/src/views/business/internalMember.vue +++ b/admin/src/views/business/internalMember.vue @@ -58,7 +58,7 @@ <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li> <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" - icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li> + >涓嬪彂鎺堟潈</el-button></li> <li style="float: right"> <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox> diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue index 5452250..026d7f3 100644 --- a/admin/src/views/business/relativeMember.vue +++ b/admin/src/views/business/relativeMember.vue @@ -65,8 +65,8 @@ icon="el-icon-plus" v-permissions="['business:traintime:create']">鍩硅鏈熷鍏�</el-button></li> <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li> - <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" - icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li> + <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button></li> + <li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li> </ul> <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"></el-table-column> @@ -147,7 +147,7 @@ <el-table-column label="鍗$墖" min-width="80px"> <template slot-scope="{row}"> <el-button @click="$refs.cardOpeningRecord.open('寮�鍗¤褰�', row.id)" type="text">{{ row.memberCardCount || - '0'}}</el-button> + '0' }}</el-button> </template> </el-table-column> <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column> @@ -383,6 +383,7 @@ <style lang="scss" scoped> @import '@/assets/style/variables.scss'; + .box { width: 100%; display: flex; @@ -399,6 +400,7 @@ height: 100%; } } + .zhuguan { color: $primary-color; border: 1px solid $primary-color; diff --git a/admin/src/views/business/visitorSources.vue b/admin/src/views/business/visitorSources.vue index 0aee304..84bdd07 100644 --- a/admin/src/views/business/visitorSources.vue +++ b/admin/src/views/business/visitorSources.vue @@ -75,25 +75,28 @@ /> </el-form-item> <el-form-item label="鍦ㄥ洯椤荤煡:" prop="visitNotice"> - <el-tiptap + <!-- <el-tiptap style="width: 50%" v-model="form.visitNotice" :extensions="extensions" - /> + /> --> + <RichEditor style="width: 70%" :richData="form.visitNotice" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/> </el-form-item> <el-form-item label="璁垮棰勭害鎸囧崡:" prop="visitNotice"> - <el-tiptap + <!-- <el-tiptap style="width: 50%" v-model="form.visitTips" :extensions="extensions" - /> + /> --> + <RichEditor style="width: 70%" :richData="form.visitTips" :styleEditor="styleEditor" @getWangedditor="getWangedditor1" :readonly="false"/> </el-form-item> <el-form-item label="璁垮鍏ュ洯瀵艰鍥�:" prop="visitNotice"> - <el-tiptap + <!-- <el-tiptap style="width: 50%" v-model="form.visitMap" :extensions="extensions" - /> + /> --> + <RichEditor style="width: 70%" :richData="form.visitMap" :styleEditor="styleEditor" @getWangedditor="getWangedditor2" :readonly="false"/> </el-form-item> <el-form-item> <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button> @@ -104,6 +107,7 @@ <script> import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common' +import RichEditor from '@/components/common/RichEditor' import { // necessary extensions Doc, @@ -131,7 +135,9 @@ import { upload } from '@/api/system/common' export default { name: 'visitorSources', - + components: { + RichEditor + }, data() { return { form: { @@ -148,6 +154,7 @@ visitTips: '', frezzDays: null }, + styleEditor:'border: 1px solid #ccc;display: inline-block;', extensions: [ new Doc(), new Text(), @@ -188,6 +195,15 @@ }, methods: { + getWangedditor(val){ + this.form.visitNotice =val + }, + getWangedditor1(val){ + this.form.visitTips =val + }, + getWangedditor2(val){ + this.form.visitMap =val + }, getData() { getVisitConfigDTO({}) .then(res => { diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue index 2fbeab3..16c38ad 100644 --- a/admin/src/views/index.vue +++ b/admin/src/views/index.vue @@ -226,8 +226,7 @@ import * as echarts from 'echarts' import { weeks } from '@/utils/config' import { - getWorkbenchBody, - getWorkbenchHead, + getWorkbenchData, getAppHeaderNav } from '@/api' const colors = ['#52a4f7', '#7678f7', '#5fc6d5'] @@ -283,10 +282,10 @@ this.initEchart4() }, getWorkBody() { - getWorkbenchBody() + getWorkbenchData({queryType: 2}) }, getWorkHead() { - getWorkbenchHead() + getWorkbenchData({queryType: 1}) }, initEchart1() { const myChart = echarts.init(document.getElementById('echart1')) @@ -458,9 +457,9 @@ symbol: 'circle', symbolSize: 10, itemStyle: { - normal: { - color: '#207FF7' // 鎶樼嚎鐐圭殑棰滆壊 - } + borderWidth: 1, + borderColor: '#fff', + color: '#207FF7' }, smooth: false } @@ -557,9 +556,9 @@ symbol: 'circle', symbolSize: 10, itemStyle: { - normal: { - color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊 - } + borderWidth: 1, + borderColor: '#fff', + color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊 }, smooth: false } diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue index 35a4005..70e321d 100644 --- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue +++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue @@ -121,6 +121,15 @@ label: '椹鹃┒鍛�' }, { + filed: 'queryStatusForPower', + type: 'select', + label: '鎺堟潈鐘舵��', + options: [ + { value: '9,10', label: '宸叉巿鏉�' }, + { value: '6', label: '鏈巿鏉�' } + ] + }, + { filed: 'selDate', type: 'datetimerange', label: '浣滀笟瀹屾垚鏃堕棿鎼滅储', diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue index 02ec74c..d68bd50 100644 --- a/admin/src/views/platform/LogisticsRecord/subscribe.vue +++ b/admin/src/views/platform/LogisticsRecord/subscribe.vue @@ -171,6 +171,18 @@ label: '鍚堝悓鍗曞彿' }, { + filed: 'status', + type: 'select', + label: '瀹℃壒缁撴灉', + options: [ + { value: 0, label: '寰呭鎵�' }, + { value: 1, label: '瀹℃壒涓�' }, + { value: 2, label: '瀹℃壒閫氳繃' }, + { value: 3, label: '瀹℃壒椹冲洖' }, + { value: 4, label: '宸插彇娑�' }, + ] + }, + { filed: 'selDate', type: 'datetimerange', label: '鎿嶄綔鏃堕棿', @@ -289,7 +301,7 @@ selDate: [], fastdate: 0, } - this.getList() + this.changeRadio('0') }, handleDetail(row) { this.isShowDriver = true diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue index 3786ca0..dd34efc 100644 --- a/admin/src/views/platform/LogisticsRecord/waybill.vue +++ b/admin/src/views/platform/LogisticsRecord/waybill.vue @@ -105,6 +105,23 @@ label: '杞︾墝鍙�' }, { + filed: 'status', + type: 'select', + label: '浣滀笟鐘舵��', + options: [ + { value: 3, label: '鍏ュ洯绛夊緟' }, + { value: 4, label: '鏈堝彴绛夊緟' }, + { value: 5, label: '浣滀笟涓�' }, + { value: 6, label: '浣滀笟瀹屾垚' }, + { value: 7, label: '杞Щ涓�' }, + { value: 8, label: '寮傚父鎸傝捣' }, + { value: 9, label: '宸叉巿鏉冪鍥�' }, + { value: 10, label: '宸茬鍥�' }, + { value: 11, label: '宸茶繃鍙�' }, + { value: 12, label: '宸插彇娑�' }, + ] + }, + { filed: 'selDate', type: 'datetimerange', label: '鎿嶄綔鏃堕棿', diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue index 1ff8326..c9d2191 100644 --- a/admin/src/views/platform/components/PlatformSign.vue +++ b/admin/src/views/platform/components/PlatformSign.vue @@ -45,8 +45,8 @@ </div> </div> <div class="footer df_sb"> - <div @click="handleDetail(item)" v-if="item.type != 4" class="detail">杩愬崟璇︽儏</div> - <div v-else></div> + <div @click="handleDetail(item)" v-if="item.billCode" class="detail">杩愬崟璇︽儏</div> + <div @click="subDetail(item)" v-else class="detail">棰勭害璇︽儏</div> <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button> </div> </div> @@ -55,6 +55,7 @@ </pagination> </div> <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" /> + <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> </GlobalWindow> </template> @@ -62,6 +63,7 @@ import GlobalWindow from '@/components/common/GlobalWindow' import Pagination from '@/components/common/Pagination' import WaybillDetailRef from "./WaybillDetail.vue" +import DriverDetail from "@/views/task/driverDetail.vue" import { platformJobPage, platformJobSign } from '@/api' import { statusMap } from '../config' import { Message } from 'element-ui' @@ -69,13 +71,15 @@ components: { GlobalWindow, Pagination, - WaybillDetailRef + WaybillDetailRef, + DriverDetail }, data() { return { statusMap, isShowModal: false, isShowDetail: false, + isShowDriver: false, subLoading: false, pagination: { total: 0, @@ -108,6 +112,15 @@ this.pagination.total = res.total }) }, + subDetail(row) { + this.isShowDriver = true + this.$nextTick(() => { + this.$refs.DriverDetailRef.id = row.bookId + this.$refs.DriverDetailRef.type = row.objType + this.$refs.DriverDetailRef.getDetail() + this.$refs.DriverDetailRef.isShowModal = true + }) + }, handleDetail(row) { this.isShowDetail = true this.$nextTick(() => { diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue index 9d04a1e..173ad1f 100644 --- a/admin/src/views/platform/queueUp.vue +++ b/admin/src/views/platform/queueUp.vue @@ -44,7 +44,9 @@ <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" /> <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right"> <template slot-scope="{ row }"> - <el-button v-if="activeGroup.type == 2" type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button> + <el-button v-if="row.billCode" type="text" @click="handleDetail(row)" + v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button> + <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button> </template> </el-table-column> </el-table> @@ -71,8 +73,9 @@ <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" /> <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right"> <template slot-scope="{ row }"> - <el-button type="text" @click="handleDetail(row)" + <el-button v-if="row.billCode" type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button> + <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button> </template> </el-table-column> </el-table> diff --git a/admin/src/views/system/smsMessage.vue b/admin/src/views/system/smsMessage.vue index 9b1052e..f3f551f 100644 --- a/admin/src/views/system/smsMessage.vue +++ b/admin/src/views/system/smsMessage.vue @@ -1,20 +1,22 @@ <template> <div class="main_app"> - <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" - @clear="clear"> + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear"> </QueryForm> - <!-- <div class="pt16"> - <el-button :loading="exLoading" @click="handleEx" - v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button> - </div> --> - <el-table class="mb20" v-loading="loading" :data="list" stripe> + <div class="pt16 mb10"> + <el-button type="primary" @click="batchStatus(0)" + v-permissions="['business:platformjob:update']">鎵归噺鍚敤</el-button> + <el-button @click="batchStatus(1)" v-permissions="['business:platformjob:update']">鎵归噺绂佺敤</el-button> + </div> + <el-table @selection-change="handleSelectionChange" class="mb20" v-loading="loading" :data="list" stripe> + <el-table-column align="center" type="selection" width="55"> + </el-table-column> <el-table-column prop="name" label="娑堟伅鏍囬" min-width="160" show-overflow-tooltip /> <el-table-column prop="code" label="娑堟伅缂栫爜" min-width="150" show-overflow-tooltip /> <el-table-column prop="content" label="娑堟伅妯℃澘" min-width="300" show-overflow-tooltip /> <el-table-column label="鐘舵��" width="120" align="center" fixed="right"> <template v-slot="scope"> - <el-switch v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1"> - </el-switch> + <el-switch v-permissions="['business:platformjob:update']" v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1"> + </el-switch> </template> </el-table-column> </el-table> @@ -25,7 +27,7 @@ <script> import Pagination from '@/components/common/Pagination' import QueryForm from '@/components/common/QueryForm' -import { getSmsList, SmsStatusUpdate } from '@/api/system/sms' +import { getSmsList, SmsStatusUpdate, SmsStatussUpdate } from '@/api/system/sms' import GlobalWindow from '@/components/common/GlobalWindow' import { Message } from 'element-ui' @@ -38,6 +40,7 @@ }, data() { return { + ids: [], isShowDetail: false, exLoading: false, loading: false, @@ -78,8 +81,32 @@ this.getList() }, methods: { + handleSelectionChange(val) { + this.ids = val.map(i => i.id) + console.log('ids', this.ids) + }, + batchStatus(status) { + const { ids } = this + if (ids.length == 0) return Message.error('璇峰厛閫夋嫨瑕佹洿鏀圭殑鐭俊閫氱煡') + this.$confirm(`纭畾${status == 0 ? '鍚敤' : '绂佺敤'}閫変腑鐨勬墍鏈夌煭淇¢�氱煡鍚�?`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + SmsStatussUpdate({ + ids: ids.join(','), + status + }).then(res => { + Message.success('鎵归噺鏇存柊鎴愬姛') + this.getList() + }, () => { + this.getList() + }) + }) + + }, changeStatus(row) { - console.log('row', row); + console.log('row', row) SmsStatusUpdate({ ...row }).then(res => { @@ -109,8 +136,8 @@ this.loading = false }) }, - - + + clear() { this.pagination.page = 1 this.filters = {} diff --git a/admin/src/views/task/driverDetail.vue b/admin/src/views/task/driverDetail.vue index 2856745..82ff153 100644 --- a/admin/src/views/task/driverDetail.vue +++ b/admin/src/views/task/driverDetail.vue @@ -69,7 +69,7 @@ <div class="content"> <div class="head"> <div class="event">{{ item.title }}</div> - <div class="time">{{ item.createDate }}</div> + <div class="time">{{ item.checkDate }}</div> </div> <div class="name_wrap"> <span>{{ item.memberName }}<span v-if="item.statusInfo" class="status">({{ item.statusInfo @@ -134,7 +134,7 @@ id: '', type: '', - title: '璁垮棰勭害璇︽儏', + title: '鐗╂祦杞﹂绾﹁鎯�', isShowModal: false, info: {}, isShowAppr: false, diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue index cb47f45..ce0413c 100644 --- a/admin/src/views/task/visSubDetail.vue +++ b/admin/src/views/task/visSubDetail.vue @@ -115,7 +115,7 @@ <div class="company"> {{ item.memberName }} <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''"> - 锛�<span class="status" :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{ + 锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{ item.statusInfo || "" }}</span>锛� </div> @@ -130,7 +130,7 @@ " class="remark"> {{ item.checkInfo || "" }} </div> - <div v-if="item.approveType == 1 || item.approveType == 0" class="childList"> + <div v-if="item.approveType == 1" class="childList"> <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id"> <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" /> <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar" diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue index 421cfdd..7018b5d 100644 --- a/h5/pages/staff/task/driver.vue +++ b/h5/pages/staff/task/driver.vue @@ -101,7 +101,11 @@ </view> </view> <view class="emyty"></view> - <view class="main_footer"> + <view v-if=" + info.approveDateVO != null && + info.approveDateVO.canBeApproved != null && + info.approveDateVO.canBeApproved == 1 + " class="main_footer"> <view class="btn" @click="handleSub('0')">鎷掔粷</view> <view class="btn agree" @click="handleSub('1')">鍚屾剰</view> </view> diff --git a/h5/utils/config.js b/h5/utils/config.js index d4d7d3a..d600971 100644 --- a/h5/utils/config.js +++ b/h5/utils/config.js @@ -1,5 +1,7 @@ -export const baseUrl = 'admin_interface/' +// export const baseUrl = 'admin_interface/' +export const baseUrl = 'http://192.168.0.173/gateway_interface/' + export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch` diff --git a/pda/manifest.json b/pda/manifest.json index efecef9..cb7800a 100644 --- a/pda/manifest.json +++ b/pda/manifest.json @@ -18,7 +18,7 @@ "proxy": { "/gateway_interface": { // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃 - "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + "target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 // "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 "changeOrigin": true, // 鍏佽璺ㄥ煙 "pathRewrite": { diff --git a/pda/pages/index/control.vue b/pda/pages/index/control.vue index 904ea22..739a7d0 100644 --- a/pda/pages/index/control.vue +++ b/pda/pages/index/control.vue @@ -36,7 +36,7 @@ }, getPlatformGroup() { getPlatformGroupList({ - queryData: 1, + queryData: 0, queryType: 0 }).then(res => { this.platformGroupList = res.data || [] diff --git a/pda/utils/config.js b/pda/utils/config.js index cccc897..0d82c16 100644 --- a/pda/utils/config.js +++ b/pda/utils/config.js @@ -1,6 +1,6 @@ -export const baseUrl = 'gateway_interface/' -// export const baseUrl = 'http://10.50.250.178:8088/gateway_interface/' +// export const baseUrl = 'gateway_interface/' +export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch` diff --git a/screen/package.json b/screen/package.json index d7e0320..c1738f2 100644 --- a/screen/package.json +++ b/screen/package.json @@ -5,6 +5,7 @@ "type": "module", "scripts": { "dev": "vite --host", + "serve": "vite --host", "build": "vite build", "preview": "vite preview" }, diff --git a/screen/src/assets/images/energy_ef/bg@2x.png b/screen/src/assets/images/energy_ef/bg@2x.png new file mode 100644 index 0000000..6b6b563 --- /dev/null +++ b/screen/src/assets/images/energy_ef/bg@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/car_kongxian@2x.png b/screen/src/assets/images/energy_ef/car_kongxian@2x.png new file mode 100644 index 0000000..4b88ea3 --- /dev/null +++ b/screen/src/assets/images/energy_ef/car_kongxian@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/car_lixian@2x.png b/screen/src/assets/images/energy_ef/car_lixian@2x.png new file mode 100644 index 0000000..bc75d5f --- /dev/null +++ b/screen/src/assets/images/energy_ef/car_lixian@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/car_zaitu@2x.png b/screen/src/assets/images/energy_ef/car_zaitu@2x.png new file mode 100644 index 0000000..4640d4b --- /dev/null +++ b/screen/src/assets/images/energy_ef/car_zaitu@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/china@2x.png b/screen/src/assets/images/energy_ef/china@2x.png new file mode 100644 index 0000000..e0ca96c --- /dev/null +++ b/screen/src/assets/images/energy_ef/china@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png b/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png new file mode 100644 index 0000000..990950f --- /dev/null +++ b/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/chuku_task.png b/screen/src/assets/images/energy_ef/chuku_task.png new file mode 100644 index 0000000..56c945e --- /dev/null +++ b/screen/src/assets/images/energy_ef/chuku_task.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/chuku_task_ac.png b/screen/src/assets/images/energy_ef/chuku_task_ac.png new file mode 100644 index 0000000..6742b96 --- /dev/null +++ b/screen/src/assets/images/energy_ef/chuku_task_ac.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ic_bili@2x.png b/screen/src/assets/images/energy_ef/ic_bili@2x.png new file mode 100644 index 0000000..49efcd1 --- /dev/null +++ b/screen/src/assets/images/energy_ef/ic_bili@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png b/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png new file mode 100644 index 0000000..39c6e3b --- /dev/null +++ b/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png b/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png new file mode 100644 index 0000000..91bd7e2 --- /dev/null +++ b/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png b/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png new file mode 100644 index 0000000..cb09cb1 --- /dev/null +++ b/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png b/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png new file mode 100644 index 0000000..2d1dfcc --- /dev/null +++ b/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png b/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png new file mode 100644 index 0000000..38bff78 --- /dev/null +++ b/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/map_car_lixian@2x.png b/screen/src/assets/images/energy_ef/map_car_lixian@2x.png new file mode 100644 index 0000000..42ffa31 --- /dev/null +++ b/screen/src/assets/images/energy_ef/map_car_lixian@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png b/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png new file mode 100644 index 0000000..7efde5a --- /dev/null +++ b/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ruku_task.png b/screen/src/assets/images/energy_ef/ruku_task.png new file mode 100644 index 0000000..1d33480 --- /dev/null +++ b/screen/src/assets/images/energy_ef/ruku_task.png Binary files differ diff --git a/screen/src/assets/images/energy_ef/ruku_task_ac.png b/screen/src/assets/images/energy_ef/ruku_task_ac.png new file mode 100644 index 0000000..06cebcc --- /dev/null +++ b/screen/src/assets/images/energy_ef/ruku_task_ac.png Binary files differ diff --git a/screen/src/assets/images/maintitle.gif b/screen/src/assets/images/maintitle.gif new file mode 100644 index 0000000..dbe6c73 --- /dev/null +++ b/screen/src/assets/images/maintitle.gif Binary files differ diff --git a/screen/src/router/index.js b/screen/src/router/index.js index b25624f..69da7a3 100644 --- a/screen/src/router/index.js +++ b/screen/src/router/index.js @@ -6,7 +6,7 @@ routes: [ { path: '/', - component: () => import('../views/PlatformCall.vue') + component: () => import('../views/LogisticsEfficiency.vue') }, { path: '/PlatformCall', @@ -18,6 +18,11 @@ name: 'EnergyConsum', component: () => import('../views/EnergyConsum.vue') }, + { + path: '/LogisticsControl', + name: 'LogisticsControl', + component: () => import('../views/LogisticsEfficiency.vue') + }, ] }) diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue index 8be04ea..d408457 100644 --- a/screen/src/views/EnergyConsum.vue +++ b/screen/src/views/EnergyConsum.vue @@ -1,241 +1,243 @@ <template> - <div class="main_app"> - <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" /> - <div class="main_header"> - <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> - <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div> - <div class="time"> - <span class="date">{{ date }}</span> - <span class="week">{{ week }}</span> - <span class="time">{{ time }}</span> - </div> - </div> - <div class="main_content"> - <div class="left_box"> - <div class="left_box_one"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>瀹炴椂涓夌浉鐢垫祦/鐢靛帇</div> - </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> - </div> - <div class="content"> - <div class="item"> - <div class="lab">A鐩哥數娴�(A)</div> - <div class="val">60</div> - </div> - <div class="item"> - <div class="lab">B鐩哥數娴�(A)</div> - <div class="val">60</div> - </div> - <div class="item"> - <div class="lab">C鐩哥數娴�(A)</div> - <div class="val">60</div> - </div> - <div class="item"> - <div class="lab">鏈夊姛鍔熺巼(KW)</div> - <div class="val">60</div> - </div> - <div class="item"> - <div class="lab">鍔熺巼鍥犳暟</div> - <div class="val">60</div> - </div> - <div class="item"> - <div class="lab">鏈夊姛鐢靛害(掳)</div> - <div class="val">60</div> - </div> - </div> - </div> - <div class="left_box_two"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>瀹炴椂璐熻嵎鏇茬嚎</div> - </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> - </div> - <div class="load_wrap"> - <div class="loadRef"></div> - </div> - </div> - <div class="left_box_three"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>鏈堣兘鑰楀垎鏋�</div> - </div> - <div class="tabs"> - <div class="tab active">鐢ㄧ數</div> - <div class="separate"></div> - <div class="tab">鐢ㄦ按</div> - <div class="separate"></div> - <div class="tab">鐢ㄦ皵</div> - </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> - </div> - <div class="energy_wrap"> - <div class="energyRef"></div> - </div> + <v-scale-screen width="1920" height="960" :fullScreen="true"> + <div class="main_app"> + <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" /> + <div class="main_header"> + <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> + <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div> + <div class="time_wrap"> + <span class="date">{{ date }}</span> + <span class="week">{{ week }}</span> + <span class="time">{{ time }}</span> </div> </div> - <div class="center_box"> - <div class="center_box_one"> - <div class="list"> - <div class="item"> - <div class="header"> - <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" /> - <div class="content"> - <div class="name">涓婃湀鐢ㄧ數(kw路h)</div> - <div class="num">450</div> + <div class="main_content"> + <div class="left_box"> + <div class="left_box_one"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>瀹炴椂涓夌浉鐢垫祦/鐢靛帇</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="content"> + <div class="item"> + <div class="lab">A鐩哥數娴�(A)</div> + <div class="val">60</div> + </div> + <div class="item"> + <div class="lab">B鐩哥數娴�(A)</div> + <div class="val">60</div> + </div> + <div class="item"> + <div class="lab">C鐩哥數娴�(A)</div> + <div class="val">60</div> + </div> + <div class="item"> + <div class="lab">鏈夊姛鍔熺巼(KW)</div> + <div class="val">60</div> + </div> + <div class="item"> + <div class="lab">鍔熺巼鍥犳暟</div> + <div class="val">60</div> + </div> + <div class="item"> + <div class="lab">鏈夊姛鐢靛害(掳)</div> + <div class="val">60</div> + </div> + </div> + </div> + <div class="left_box_two"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>瀹炴椂璐熻嵎鏇茬嚎</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="load_wrap"> + <div class="loadRef"></div> + </div> + </div> + <div class="left_box_three"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>鏈堣兘鑰楀垎鏋�</div> + </div> + <div class="tabs"> + <div class="tab active">鐢ㄧ數</div> + <div class="separate"></div> + <div class="tab">鐢ㄦ按</div> + <div class="separate"></div> + <div class="tab">鐢ㄦ皵</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="energy_wrap"> + <div class="energyRef"></div> + </div> + </div> + </div> + <div class="center_box"> + <div class="center_box_one"> + <div class="list"> + <div class="item"> + <div class="header"> + <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" /> + <div class="content"> + <div class="name">涓婃湀鐢ㄧ數(kw路h)</div> + <div class="num">450</div> + </div> + </div> + <div class="static"> + <span class="lab">鍚屾瘮</span> + <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> + <span class="val">11</span> + <span class="lab">鐜瘮</span> + <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> + <span class="val">11</span> </div> </div> - <div class="static"> - <span class="lab">鍚屾瘮</span> - <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> - <span class="val">11</span> - <span class="lab">鐜瘮</span> - <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> - <span class="val">11</span> - </div> - </div> - <div class="item"> - <div class="header"> - <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" /> - <div class="content"> - <div class="name">涓婃湀鐢ㄦ按(t)</div> - <div class="num">450</div> + <div class="item"> + <div class="header"> + <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" /> + <div class="content"> + <div class="name">涓婃湀鐢ㄦ按(t)</div> + <div class="num">450</div> + </div> + </div> + <div class="static"> + <span class="lab">鍚屾瘮</span> + <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> + <span class="val">11</span> + <span class="lab">鐜瘮</span> + <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> + <span class="val">11</span> </div> </div> - <div class="static"> - <span class="lab">鍚屾瘮</span> - <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> - <span class="val">11</span> - <span class="lab">鐜瘮</span> - <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> - <span class="val">11</span> - </div> - </div> - <div class="item"> - <div class="header"> - <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" /> - <div class="content"> - <div class="name">涓婃湀鐢ㄦ皵(t)</div> - <div class="num">450</div> + <div class="item"> + <div class="header"> + <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" /> + <div class="content"> + <div class="name">涓婃湀鐢ㄦ皵(t)</div> + <div class="num">450</div> + </div> + </div> + <div class="static"> + <span class="lab">鍚屾瘮</span> + <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> + <span class="val">11</span> + <span class="lab">鐜瘮</span> + <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> + <span class="val">11</span> </div> </div> - <div class="static"> - <span class="lab">鍚屾瘮</span> - <img class="icon" src="@/assets/images/ic_up.webp" alt="" /> - <span class="val">11</span> - <span class="lab">鐜瘮</span> - <img class="icon" src="@/assets/images/ic_down.webp" alt="" /> - <span class="val">11</span> + </div> + </div> + <div class="center_box_two"> + <img class="bg" src="@/assets/images/img_city@2x.png" alt="" /> + <div class="item item1"> + <div class="num fs_linear">240<span class="unit">kw路h</span></div> + <div class="name">鑱斿悎宸ユ埧</div> + <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> + </div> + <div class="item item2"> + <div class="num fs_linear">240<span class="unit">kw路h</span></div> + <div class="name">鑱斿悎宸ユ埧</div> + <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> + </div> + <div class="item item3"> + <div class="num fs_linear">240<span class="unit">kw路h</span></div> + <div class="name">鑱斿悎宸ユ埧</div> + <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> + </div> + <div class="item item4"> + <div class="num fs_linear">240<span class="unit">kw路h</span></div> + <div class="name">鑱斿悎宸ユ埧</div> + <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> + </div> + <div class="item item5"> + <div class="num fs_linear">240<span class="unit">kw路h</span></div> + <div class="name">鑱斿悎宸ユ埧</div> + <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> + </div> + <div class="bottom_wrap"> + <div class="bottom bottom1"> + <div class="num fs_linear">240</div> + <div class="name">鏄ㄦ棩鐢ㄧ數</div> + <div class="unit">kw路h</div> + <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> + </div> + <div class="bottom bottom2"> + <div class="num">240</div> + <div class="name">浠婃棩鐢ㄧ數</div> + <div class="unit">kw路h</div> + <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> + </div> + <div class="bottom bottom3"> + <div class="num fs_linear">240</div> + <div class="name">鏈湀鐢ㄧ數</div> + <div class="unit">kw路h</div> + <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> </div> </div> </div> </div> - <div class="center_box_two"> - <img class="bg" src="@/assets/images/img_city@2x.png" alt="" /> - <div class="item item1"> - <div class="num fs_linear">240<span class="unit">kw路h</span></div> - <div class="name">鑱斿悎宸ユ埧</div> - <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> - </div> - <div class="item item2"> - <div class="num fs_linear">240<span class="unit">kw路h</span></div> - <div class="name">鑱斿悎宸ユ埧</div> - <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> - </div> - <div class="item item3"> - <div class="num fs_linear">240<span class="unit">kw路h</span></div> - <div class="name">鑱斿悎宸ユ埧</div> - <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> - </div> - <div class="item item4"> - <div class="num fs_linear">240<span class="unit">kw路h</span></div> - <div class="name">鑱斿悎宸ユ埧</div> - <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> - </div> - <div class="item item5"> - <div class="num fs_linear">240<span class="unit">kw路h</span></div> - <div class="name">鑱斿悎宸ユ埧</div> - <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" /> - </div> - <div class="bottom_wrap"> - <div class="bottom bottom1"> - <div class="num fs_linear">240</div> - <div class="name">鏄ㄦ棩鐢ㄧ數</div> - <div class="unit">kw路h</div> - <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> - </div> - <div class="bottom bottom2"> - <div class="num">240</div> - <div class="name">浠婃棩鐢ㄧ數</div> - <div class="unit">kw路h</div> - <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" /> - </div> - <div class="bottom bottom3"> - <div class="num fs_linear">240</div> - <div class="name">鏈湀鐢ㄧ數</div> - <div class="unit">kw路h</div> - <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" /> - </div> - </div> - </div> - </div> - <div class="right_box"> - <div class="right_box_one"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>鏈湀纰虫帓鏀鹃噺缁熻</div> - </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> - </div> - <div class="content"> - <img src="@/assets/images/ic_co2@2x.png" class="co2" alt=""> - <div> - <div class="name">鏈湀绱纰虫帓鏀�</div> - <div><span class="num">22.22</span><span>鍚�</span></div> - </div> - </div> - </div> - <div class="right_box_two"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>涓婃湀娌硅�楁帓琛岀粺璁�</div> - </div> - <div class="tabs">娌硅�楋細L</div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> - </div> - <div class="list"> - <div class="line" v-for="item,i in 6"> - <div class="top"><span v-if="i < 3">top</span>{{ i }}</div> - <div class="id_card">鐨朅12313</div> - <div class="wrap"> - <ChargeRate :rate="15" :color /> + <div class="right_box"> + <div class="right_box_one"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>鏈湀纰虫帓鏀鹃噺缁熻</div> </div> - <div class="num">1000</div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="content"> + <img src="@/assets/images/ic_co2@2x.png" class="co2" alt=""> + <div> + <div class="name">鏈湀绱纰虫帓鏀�</div> + <div><span class="num">22.22</span><span>鍚�</span></div> + </div> </div> </div> - </div> - <div class="right_box_three"> - <div class="com_header"> - <div class="title"> - <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> - <div>鏈堟补鑰楀垎鏋�</div> + <div class="right_box_two"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>涓婃湀娌硅�楁帓琛岀粺璁�</div> + </div> + <div class="tabs">娌硅�楋細L</div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> </div> - <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + <div class="list"> + <div class="line" v-for="item, i in 6"> + <div class="top"><span v-if="i < 3">top</span>{{ i }}</div> + <div class="id_card">鐨朅12313</div> + <div class="wrap"> + <ChargeRate :rate="15" :color /> + </div> + <div class="num">1000</div> + </div> + </div> </div> - <div class="wrap"> - <div class="analyseRef"></div> + <div class="right_box_three"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>鏈堟补鑰楀垎鏋�</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="wrap"> + <div class="analyseRef"></div> + </div> </div> </div> </div> </div> - </div> + </v-scale-screen> </template> <script setup> @@ -243,6 +245,7 @@ import dayjs from 'dayjs' import ChargeRate from '@/components/ChargeRate.vue' import * as echarts from 'echarts' +import VScaleScreen from 'v-scale-screen' const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',] @@ -286,7 +289,7 @@ xAxis: { type: 'category', boundaryGap: false, - data: [1,2,3,4,5,5] + data: [1, 2, 3, 4, 5, 5] }, yAxis: { type: 'value', @@ -313,7 +316,7 @@ }, series: [ { - data: [1,2,3,4,4,5].map(i => { + data: [1, 2, 3, 4, 4, 5].map(i => { return { name: i, value: i, @@ -398,7 +401,7 @@ xAxis: { type: 'category', boundaryGap: false, - data: [1,2,3,4,5,5] + data: [1, 2, 3, 4, 5, 5] }, yAxis: { type: 'value', @@ -425,7 +428,7 @@ }, series: [ { - data: [1,2,3,4,4,4000].map(i => { + data: [1, 2, 3, 4, 4, 4000].map(i => { return { name: i, value: i, @@ -502,7 +505,7 @@ }, xAxis: { type: 'category', - data: [1,2,3,4,4,5] + data: [1, 2, 3, 4, 4, 5] }, yAxis: { type: 'value', @@ -520,7 +523,7 @@ }, series: [ { - data: [1,2,3,4,5], + data: [1, 2, 3, 4, 5], type: 'bar', barWidth: 10, itemStyle: { @@ -547,7 +550,7 @@ initOperation() initLoadReal() initEnergy() -}) +}) </script> @@ -591,11 +594,13 @@ .left_box_two { margin-bottom: 20px; - .load_wrap{ + + .load_wrap { width: 100%; height: 210px; padding: 12px 12px; - .loadRef{ + + .loadRef { width: 100%; height: 100%; } @@ -603,10 +608,11 @@ } .left_box_three { - .energy_wrap{ + .energy_wrap { width: 100%; height: 200px; - .energyRef{ + + .energyRef { width: 100%; height: 100%; } @@ -805,6 +811,7 @@ .right_box_one { margin-bottom: 20px; + .content { height: 164px; display: flex; @@ -825,15 +832,19 @@ } } } - .right_box_two{ + + .right_box_two { margin-bottom: 20px; - .list{ + + .list { padding: 20px 24px 4px; - .line{ + + .line { display: flex; align-items: center; margin-bottom: 16px; - .top{ + + .top { font-weight: 500; font-size: 12px; width: 33px; @@ -844,19 +855,22 @@ box-shadow: inset 0px 0px 3px 0px #01D9FE; margin-right: 10px; } - .id_card{ + + .id_card { color: #DBEAEA; font-weight: 500; margin-right: 14px; font-size: 14px; } - .num{ + + .num { font-weight: 500; font-size: 13px; color: #DBEAEA; margin-left: 15px; } - .wrap{ + + .wrap { flex: 1; height: 20px; border: 1px solid #686B6B; @@ -864,10 +878,12 @@ } } } - .right_box_three{ - .wrap{ + + .right_box_three { + .wrap { padding: 8px; - .analyseRef{ + + .analyseRef { width: 100%; height: 210px; } @@ -963,7 +979,7 @@ -webkit-text-fill-color: transparent; } - .time { + .time_wrap { font-size: 26px; font-weight: 600; background-image: -webkit-linear-gradient(top, @@ -1001,11 +1017,10 @@ } .main_app { - width: 100%; - min-height: 100vh; + width: 1920px; + height: 980px; color: #ffffff; position: relative; - .main_bg { position: absolute; left: 0; diff --git a/screen/src/views/LogisticsControl.vue b/screen/src/views/LogisticsControl.vue deleted file mode 100644 index b9756f2..0000000 --- a/screen/src/views/LogisticsControl.vue +++ /dev/null @@ -1,67 +0,0 @@ -<template> - <div class="main_app"> - <div class="main_header"> - <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div> - <div class="time"> - <span>{{date}}</span> - <span>{{week}}</span> - <span>{{time}}</span> - </div> - </div> - <div class="main_content"> - <div class="left_box"> - <div class="left_box_one"></div> - <div class="left_box_two"></div> - <div class="left_box_three"></div> - </div> - <div class="center_box"> - <div class="center_box_one"></div> - <div class="center_box_two"></div> - </div> - <div class="right_box"> - <div class="right_box_one"></div> - <div class="right_box_two"></div> - <div class="right_box_three"></div> - </div> - </div> - </div> -</template> - -<script setup> -import { ref } from 'vue' -import dayjs from 'dayjs' - -const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',] -const date = ref(dayjs().format('YYYY.MM.DD')) -const week = ref(weekMap[new Date().getDay()]) -const time = ref(dayjs().format('HH:mm:ss')) -setInterval(() => { - date.value = dayjs().format('YYYY-MM-DD') - week.value = weekMap[new Date().getDay()] - time.value = dayjs().format('HH:mm:ss') - -},1000) - -</script> - -<style lang="scss" scoped> -.main_app{ - width: 100%; - min-height: 100vh; - background: #0b2539; - color: #FFFFFF; -} -.main_content{ - display: flex; - .left_box{} - .center_box{} - .right_box{} -} -.main_header{ - display: flex; - align-items: center; - justify-content: space-between; - height: 71px; - border: 1px solid; -} -</style> \ No newline at end of file diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue new file mode 100644 index 0000000..26d9530 --- /dev/null +++ b/screen/src/views/LogisticsEfficiency.vue @@ -0,0 +1,637 @@ +<template> + <v-scale-screen width="1920" height="960" :fullScreen="true"> + <div class="main_app"> + <img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" /> + <div class="main_header"> + <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> --> + <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> + <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-璋冨害鑳芥晥璺熻釜</div> + <div class="time_wrap"> + <span class="date">{{ date }}</span> + <span class="week">{{ week }}</span> + <span class="time">{{ time }}</span> + </div> + </div> + <div class="main_content"> + <div class="left_box"> + <div class="left_box_one"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>绱鍑哄簱閲忕粺璁�</div> + </div> + <div class="tabs"> + <div class="tab active">鏈湀</div> + <div class="separate"></div> + <div class="tab">鏈勾</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="content_wrap"> + <div class="content"> + <div class="num">1000000</div> + <div class="unit_wrap"> + <span style="color: #869CC9;">鍚屾瘮</span> + <img src="@/assets/images/ic_up.png" class="icon" alt=""> + <span>10.2%</span> + </div> + </div> + <div class="train_wrap"> + <div class="icon_wrap"> + <img src="@/assets//images/energy_ef/chuku_ic_car@2x.png" alt=""> + </div> + <div class="total"> + <span>绱鍑哄簱杞︽</span> + <span><strong>3900</strong><span class="unit">娆�</span></span> + </div> + </div> + </div> + </div> + <div class="left_box_two"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>鏈堣兘鑰楀垎鏋�</div> + </div> + <div class="tabs"> + <div class="tab active">杩�7鏃�</div> + <div class="separate"></div> + <div class="tab">鏈湀</div> + <div class="separate"></div> + <div class="tab">鏈勾</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="energy_wrap"> + <div class="energyRef"></div> + </div> + </div> + <div class="left_box_three"> + <div class="com_header"> + <div class="title"> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>褰撳墠杩愯緭浠诲姟</div> + </div> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> + </div> + <div class="list_wrap"> + <div class="list"> + <div class="header line"> + <span class="item flag">鏍囪瘑</span> + <span class="item order">杩愯緭鍗曞彿</span> + <span class="item id_card">杩愯緭杞﹁締</span> + <span class="item status">浣滀笟鐘舵��</span> + <span class="item addr">鏀惰揣鍗曚綅</span> + <span class="item time">浠诲姟寮�濮嬫椂闂�</span> + </div> + <div class="line" v-for="i in 7"> + <span class="item flag"><span class="flag_bg">鍑�</span></span> + <span class="item order">11</span> + <span class="item id_card">11</span> + <span class="item status">11</span> + <span class="item addr">11</span> + <span class="item time">11</span> + </div> + </div> + </div> + </div> + </div> + <div class="center_box"> + <div class="center_box_one"> + <div class="tabs"> + <div class="tab active"> + <img src="@/assets/images/energy_ef/chuku_task_ac.png" alt=""> + <span>鍑哄簱浠诲姟</span> + </div> + <div class="tab"> + <img src="@/assets/images/energy_ef/ruku_task.png" alt=""> + <span>鍏ュ簱浠诲姟</span> + </div> + </div> + <div class="static_wrap"> + <div class="item"> + <img src="@/assets/images/energy_ef/ic_renwuzongliang@2x.png" alt=""> + <div class="content"> + <div class="name">褰撳墠浠诲姟閲�</div> + <div class="num"><span>1000</span>涓囨敮</div> + </div> + </div> + <div class="item"> + <img src="@/assets/images/energy_ef/ic_wanchengrenwu@2x.png" alt=""> + <div class="content"> + <div class="name">褰撴棩瀹屾垚浠诲姟鎬婚噺</div> + <div class="num"><span class="today">1000</span>涓囨敮</div> + </div> + </div> + <div class="item"> + <img src="@/assets/images/energy_ef/ic_bili@2x.png" alt=""> + <div class="content"> + <div class="name">宸插畬鎴愭瘮渚�</div> + <div class="num"><span class="finish">1000</span>涓囨敮</div> + </div> + </div> + </div> + </div> + <div class="center_box_two"></div> + </div> + <div class="right_box"> + <div class="right_box_one"></div> + <div class="right_box_two"></div> + <div class="right_box_three"></div> + </div> + </div> + </div> + </v-scale-screen> +</template> + +<script setup> +import { ref, onMounted } from 'vue' +import VScaleScreen from 'v-scale-screen' +import dayjs from 'dayjs' +import * as echarts from 'echarts' + +const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',] +const date = ref(dayjs().format('YYYY.MM.DD')) +const week = ref(weekMap[new Date().getDay()]) +const time = ref(dayjs().format('HH:mm:ss')) +setInterval(() => { + date.value = dayjs().format('YYYY-MM-DD') + week.value = weekMap[new Date().getDay()] + time.value = dayjs().format('HH:mm:ss') + +}, 1000) + +const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] +const initEnergy = () => { + var myChart = echarts.init(document.querySelector('.energyRef')) + // 缁樺埗鍥捐〃 + const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] + myChart.setOption({ + grid: { + top: '20%', + left: '2%', + right: '2%', + bottom: '4%', + containLabel: true + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'line' + }, + }, + xAxis: { + type: 'category', + data: [1, 2, 3, 4, 4, 5] + }, + yAxis: { + type: 'value', + name: 'kw路h', + nameTextStyle: { + padding: [0, 0, 4, -30] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂� + }, + splitLine: { + show: true, + lineStyle: { + //杩欓噷杈撳叆绾挎潯鐨勬牱寮� + color: 'rgba(255,255,255,0.14)', + } + } + }, + series: [ + { + data: [1, 2, 3, 4, 5], + type: 'bar', + barWidth: 10, + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, 0, 0, 1, + [ + { offset: 0, color: arr[1] }, + { offset: 1, color: '#080807' } + ] + ), + barBorderRadius: [10, 10, 0, 0] + } + } + } + ] + }) + window.addEventListener('resize', function () {//鎵ц + myChart.resize() + }) +} + +onMounted(() => { + initEnergy() +}) + + +</script> + +<style lang="scss" scoped> +div { + box-sizing: border-box; +} + +.main_content { + display: flex; + padding: 20px 25px 0; + + .left_box { + width: 440px; + + .left_box_one { + width: 100%; + position: relative; + margin-bottom: 20px; + + .content_wrap { + height: 164px; + padding: 22px 20px 0; + + .content { + display: flex; + align-items: flex-end; + margin: 10px 0 22px; + + .num { + margin-right: 10px; + font-weight: bold; + font-size: 46px; + height: 44px; + line-height: 52px; + font-weight: bold; + color: #00F2F3; + letter-spacing: 3px; + background-image: -webkit-linear-gradient(top, + #01D9FE 0%, + #0177FE 60%, + #0177FE 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + .unit_wrap { + display: flex; + align-items: center; + } + + .icon { + width: 10px; + height: 12px; + margin-right: 6px; + margin-left: 4px; + } + } + + .train_wrap { + display: flex; + height: 40px; + margin-top: 18px; + + .icon_wrap { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 4px; + border: 1px solid; + background: linear-gradient(180deg, rgba(0, 148, 235, 0.68) 0%, rgba(0, 148, 235, 0) 100%); + border-image: linear-gradient(180deg, rgba(177, 210, 255, 0.64), rgba(0, 171, 255, 0.7)) 1 1; + + img { + width: 26px; + } + } + + .total { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20px; + font-size: 16px; + border: 1px solid; + border-image: linear-gradient(180deg, rgba(177, 210, 255, 0.64), rgba(0, 171, 255, 0.7)) 1 1; + background: linear-gradient(180deg, rgba(0, 148, 235, 0.68) 0%, rgba(0, 148, 235, 0) 100%); + + .unit { + margin-left: 5px; + font-size: 13px; + } + } + } + } + } + + .left_box_two { + margin-bottom: 20px; + + .energy_wrap { + width: 100%; + height: 250px; + + .energyRef { + width: 100%; + height: 100%; + } + } + } + + .left_box_three { + .list_wrap { + padding: 10px 0; + + .list { + .line { + display: flex; + height: 30px; + align-items: center; + padding: 0 10px; + font-size: 12px; + + &:nth-of-type(2n) { + background: rgba(27, 64, 97, 0.52); + + .flag_bg { + background: #01ABFE !important; + } + } + + .item { + flex: 5; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .flag { + flex: 3; + display: flex; + + .flag_bg { + width: 22px; + height: 22px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + background: #00F2F3; + font-weight: 500; + color: #001B3C; + } + } + + .status { + color: #FEAF01; + } + + .addr { + flex: 8; + + } + + .time { + flex: 8; + } + } + } + } + } + } + + .center_box { + flex: 1; + padding: 16px 60px; + .center_box_one { + .tabs { + display: flex; + align-items: center; + + .tab { + display: flex; + align-items: center; + margin-right: 30px; + + img { + width: 20px; + height: 20px; + margin-right: 8px; + } + + font-size: 20px; + font-weight: 600; + color: #D2E0FF; + } + + .active { + background-image: -webkit-linear-gradient(top, + #fff 0%, + #eec05f 60%, + #eec05f 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + } + + .static_wrap { + display: flex; + justify-content: space-between; + align-items: center; + margin: 30px 0 54px; + + .item { + display: flex; + + img { + width: 68px; + height: 71px; + margin-right: 15px; + } + + .content { + font-size: 15px; + + .num { + font-size: 12px; + color: #D2E0FF; + + span { + font-weight: bold; + font-size: 30px; + margin-right: 5px; + font-weight: 600; + background-image: -webkit-linear-gradient(top, + #01D9FE 0%, + #01D9FE 60%, + #fff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + .today { + background-image: -webkit-linear-gradient(top, + #fff 0%, + #20FFC5 50%, + #20FFC5 100%); + } + .finish{ + background-image: -webkit-linear-gradient(top, + #fff 0%, + #FFB120 50%, + #FFB120 100%); + } + } + } + } + } + } + .center_box_two{ + width: 100%; + border: 1px solid; + } + } + + .right_box { + width: 440px; + } +} + +.main_header { + display: flex; + justify-content: space-between; + align-items: center; + height: 90px; + position: relative; + padding: 0px 40px 16px; + font-weight: 600; + font-size: 36px; + + .title { + background-image: -webkit-linear-gradient(top, + #ffffff 0%, + #c8ddff 70%, + #85b4ff 80%, + #74a9ff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + .time_wrap { + font-size: 26px; + font-weight: 600; + background-image: -webkit-linear-gradient(top, + #ffffff 0%, + #c8ddff 50%, + #85b4ff 80%, + #74a9ff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + display: flex; + align-items: center; + + .time { + width: 180px; + display: flex; + justify-content: flex-end; + padding-bottom: 10px; + font-size: 36px; + } + + .week { + margin-left: 36px; + } + } + + .main_header_bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -1; + } +} + +.com_header { + height: 40px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 15px 0 13px; + position: relative; + + .title { + display: flex; + align-items: center; + font-weight: bold; + font-size: 16px; + background-image: -webkit-linear-gradient(top, + #ffffff 0%, + #c8ddff 66%, + #85b4ff 72%, + #74a9ff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + + .icon { + width: 16px; + height: 16px; + margin-right: 14px; + } + } + + .tabs { + display: flex; + align-items: center; + font-size: 14px; + color: #d2e0ff; + + .separate { + width: 1px; + height: 14px; + background-color: #d2e0ff; + margin: 0 6px; + } + + .active { + color: #0094eb; + } + } +} + +.main_app { + width: 1920px; + min-height: 960px; + /* width: 100%; + height: 100vh; */ + background: #0b2539; + color: #FFFFFF; + position: relative; + z-index: -2; + + .main_bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -1; + } +} + +.bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: -1; +} +</style> \ No newline at end of file diff --git a/screen/src/views/PlatformCall.vue b/screen/src/views/PlatformCall.vue index 98a699d..312e4c6 100644 --- a/screen/src/views/PlatformCall.vue +++ b/screen/src/views/PlatformCall.vue @@ -30,7 +30,6 @@ }else{ item.optTimeTemp = '-' } - } // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm') } diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java index dd26eaf..d297d31 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java @@ -672,105 +672,6 @@ } - public enum NoticeType { - - ZERO(0, "寰呭鏍�","","","寰呭鏍�","寰呭鐞�","澶勭悊涓�"), - ONE(1, "浼佷笟寰呯缃�","","","宸ョ寰呭鏍�","","宸茬粨妗�"), - TWO(2, "寰呭嚭鍗�","寰呭鏍�","寰呭鏍�","","",""), - THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","",""), - FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","","宸叉挙閿�"), - FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","",""), - //缁繚閫氱煡 - SIX(6, "","","","","",""), - //鍟嗘埛绔� 濮旀墭淇� - 鎶曚繚寰呭鏍� 鍔犲噺淇� 鎹㈠巶 寰呭鏍� - SEVEN(7, "寰呭鏍�","寰呭鏍�","寰呭鏍�","","",""), - EIGHT(8, "","","","","",""), - NINE(9, "","","","","",""), - ; - - // 鎴愬憳鍙橀噺 - private int status; - private String insuranceApplyDetail; - private String applyChangeDetail; - private String changeFactoryDetail; - private String dispatchUnitDetail; - private String taxesDetail; - private String settleClaimsDetail; - - // 鏋勯�犳柟娉� - NoticeType(int status, String insuranceApplyDetail,String applyChangeDetail - , String changeFactoryDetail,String dispatchUnitDetail - , String taxesDetail,String settleClaimsDetail) { - this.status = status; - this.insuranceApplyDetail = insuranceApplyDetail; - this.applyChangeDetail = applyChangeDetail; - this.changeFactoryDetail = changeFactoryDetail; - this.dispatchUnitDetail = dispatchUnitDetail; - this.taxesDetail = taxesDetail; - this.settleClaimsDetail = settleClaimsDetail; - } - - - // get set 鏂规硶 - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getInsuranceApplyDetail() { - return insuranceApplyDetail; - } - - public void setInsuranceApplyDetail(String name) { - this.insuranceApplyDetail = insuranceApplyDetail; - } - - public String getApplyChangeDetail() { - return applyChangeDetail; - } - - public void setApplyChangeDetail(String info) { - this.applyChangeDetail = applyChangeDetail; - } - - public String getChangeFactoryDetail() { - return changeFactoryDetail; - } - - public void setChangeFactoryDetail(String info) { - this.changeFactoryDetail = changeFactoryDetail; - } - - public String getDispatchUnitDetail() { - return dispatchUnitDetail; - } - - public void setDispatchUnitDetail(String info) { - this.dispatchUnitDetail = dispatchUnitDetail; - } - - public String getTaxesDetail() { - return taxesDetail; - } - - public void setTaxesDetail(String info) { - this.taxesDetail = taxesDetail; - } - - public String getSettleClaimsDetail() { - return settleClaimsDetail; - } - - public void setSettleClaimsDetail(String info) { - this.settleClaimsDetail = settleClaimsDetail; - } - - - } - public enum PlatformWarnEvent { STOP_TIMEOUT(0, "鍋滈潬瓒呮椂","${carCode}鏈堝彴鍋滈潬瓒呮椂" ), STOP_ERROR(1, "鍋滈潬閿欒","${carCode}鏈堝彴鍋滈潬閿欒" ), diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java index 33158ca..2f2bb09 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java @@ -2,8 +2,16 @@ import com.doumee.api.BaseController; import com.doumee.config.annotation.LoginNoRequired; +import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest; +import com.doumee.core.tms.model.request.TmsOrderInfoRequest; +import com.doumee.core.tms.model.request.TmsOrderListRequest; +import com.doumee.core.tms.model.response.TmsBaseResponse; +import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; +import com.doumee.core.tms.model.response.TmsOrderInfoResponse; +import com.doumee.core.tms.model.response.TmsOrderListResponse; import com.doumee.core.utils.Constants; import com.doumee.core.wms.model.response.WmsBaseResponse; +import com.doumee.service.business.third.TmsService; import com.doumee.service.business.third.WmsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -11,12 +19,14 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; +import java.util.List; /** * @author 姹熻箘韫� @@ -31,6 +41,8 @@ @Autowired private WmsService wmsService; + @Autowired + private TmsService tmsService; @ApiOperation("銆怶MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟") @PostMapping("/push/inboundNotice") @@ -69,6 +81,27 @@ doPringParam(request,"銆怶MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟"); return new WmsBaseResponse(); } + @ApiOperation("銆怲MS銆戠數瀛愰攣涓婇攣鏃堕棿鎺ュ彛") + @LoginNoRequired + @PostMapping("/tms/lockStatusQuery") + public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(@RequestBody TmsLockStatusQueryRequest request ) { + + return tmsService.lockStatusQuery(request); + } + @ApiOperation("銆怲MS銆戝悎鍚屽垪琛ㄦ帴鍙�") + @LoginNoRequired + @PostMapping("/tms/orderList") + public TmsBaseResponse<List<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request ) { + + return tmsService.orderList(request); + } + @ApiOperation("銆怲MS銆戝悎鍚岃鎯呮帴鍙�") + @LoginNoRequired + @PostMapping("/tms/orderInfo") + public TmsBaseResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request ) { + + return tmsService.orderInfo(request); + } public static void doPringParam(HttpServletRequest request,String name) { try { diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java index 716c37b..ad24e60 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java @@ -27,7 +27,7 @@ } */ - private String contratNumber ; //鍚堝悓鍙� + private String contractNumber ; //鍚堝悓鍙� private String fromRepertotyName ; //鍙戣揣鍦� private String toRepertoty ; //鍒拌揣鍦� private String plateNumber; // 杞︾墝鍙� 鍚堝悓鏈厤杞藉垯鏃� diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java index 8da7117..a4defe8 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest; +import com.doumee.core.tms.model.request.TmsOrderInfoRequest; import com.doumee.core.tms.model.request.TmsOrderListRequest; import com.doumee.core.tms.model.response.TmsBaseResponse; import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; +import com.doumee.core.tms.model.response.TmsOrderInfoResponse; import com.doumee.core.tms.model.response.TmsOrderListResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; @@ -58,7 +60,7 @@ * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙� * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱 * @param param 鍙傛暟 - * @return WmsBaseResponse + * @return TmsBaseResponse */ @Override public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){ @@ -67,14 +69,14 @@ TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"鐢靛瓙閿佷笂閿佹椂闂存帴鍙�",JSONObject.toJSONString(param) ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){}); - return new TmsBaseResponse<>(); + return response; } /** * 鍚堝悓鍒楄〃鎺ュ彛 * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛� * @param param 鍙傛暟 - * @return WmsBaseResponse + * @return TmsBaseResponse */ @Override public TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param){ @@ -82,7 +84,20 @@ +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode(); TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"鍚堝悓鍒楄〃鎺ュ彛",JSONObject.toJSONString(param) ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){}); - return new TmsBaseResponse<>(); + return response; + } + /** + * 鍚堝悓璇︽儏鎺ュ彛 + * @param param 鍙傛暟 + * @return TmsBaseResponse + */ + @Override + public TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param){ + String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode() + +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode(); + TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"鍚堝悓璇︽儏鎺ュ彛",JSONObject.toJSONString(param) + ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){}); + return response; } /** diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java index a2d0154..804ae24 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java @@ -1,9 +1,11 @@ package com.doumee.service.business.third; import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest; +import com.doumee.core.tms.model.request.TmsOrderInfoRequest; import com.doumee.core.tms.model.request.TmsOrderListRequest; import com.doumee.core.tms.model.response.TmsBaseResponse; import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; +import com.doumee.core.tms.model.response.TmsOrderInfoResponse; import com.doumee.core.tms.model.response.TmsOrderListResponse; import com.doumee.core.wms.model.request.WmsActionNoticeRequest; import com.doumee.core.wms.model.request.WmsBaseRequest; @@ -27,7 +29,7 @@ * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙� * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱 * @param param 鍙傛暟 - * @return WmsBaseResponse + * @return TmsBaseResponse */ TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param); @@ -35,9 +37,16 @@ * 鍚堝悓鍒楄〃鎺ュ彛 * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛� * @param param 鍙傛暟 - * @return WmsBaseResponse + * @return TmsBaseResponse */ TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param); + /** + * 鍚堝悓璇︽儏鎺ュ彛 + * @param param 鍙傛暟 + * @return TmsBaseResponse + */ + TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param); + } -- Gitblit v1.9.3