Merge remote-tracking branch 'origin/master'
已添加20个文件
已删除1个文件
已修改33个文件
| | |
| | | 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/' |
| | | |
| | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | |
| | | <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" /> |
| | |
| | | :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> |
| | |
| | | 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) |
| | |
| | | }, |
| | | { |
| | | text: 'è¿30天', |
| | | onClick (picker) { |
| | | onClick(picker) { |
| | | const end = new Date() |
| | | const start = new Date() |
| | | start.setTime(end.getTime() - 3600 * 1000 * 24 * 29) |
| | |
| | | }, |
| | | { |
| | | text: 'è¿60天', |
| | | onClick (picker) { |
| | | onClick(picker) { |
| | | const end = new Date() |
| | | const start = new Date() |
| | | start.setTime(end.getTime() - 3600 * 1000 * 24 * 59) |
| | |
| | | }, |
| | | { |
| | | 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 |
| | |
| | | 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') |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | 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: { // ç¶ç»ä»¶ä¼ éçæ°æ® |
| | |
| | | timeout: 10 * 1000, //10 ç§ |
| | | // ä¸ä¼ å |
| | | onBeforeUpload(files) { |
| | | Loading.service({ |
| | | loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'ä¸ä¼ ä¸...', |
| | | spinner: 'el-icon-loading', |
| | |
| | | console.log(res); |
| | | // å 为èªå®ä¹æå
¥å¯¼è´onSuccessä¸onFailedåè°å½æ°ä¸èµ·ä½ç¨,èªå·±æå¨å¤ç |
| | | // å
å
³éçå¾
çMessage |
| | | Loading.service({ |
| | | loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'ä¸ä¼ ä¸...', |
| | | spinner: 'el-icon-loading', |
| | |
| | | // å个æä»¶ä¸ä¼ 失败 |
| | | onFailed(file, res) { |
| | | console.log(`${file.originalFilename} ä¸ä¼ 失败`, res); |
| | | loadingInstance.close(); |
| | | }, |
| | | // ä¸ä¼ è¿åº¦çåè°å½æ° |
| | | onProgress(progress) { |
| | |
| | | }, |
| | | // ä¸ä¼ éè¯¯ï¼æè
触å timeout è¶
æ¶ |
| | | onError(file, err, res) { |
| | | loadingInstance.close(); |
| | | console.log(`${file.originalFilename} ä¸ä¼ åºé`, err, res); |
| | | } |
| | | }, |
| | |
| | | <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> |
| | |
| | | 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> |
| | |
| | | <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> |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | |
| | | .box { |
| | | width: 100%; |
| | | display: flex; |
| | |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .zhuguan { |
| | | color: $primary-color; |
| | | border: 1px solid $primary-color; |
| | |
| | | /> |
| | | </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> |
| | |
| | | |
| | | <script> |
| | | import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common' |
| | | import RichEditor from '@/components/common/RichEditor' |
| | | import { |
| | | // necessary extensions |
| | | Doc, |
| | |
| | | import { upload } from '@/api/system/common' |
| | | export default { |
| | | name: 'visitorSources', |
| | | |
| | | components: { |
| | | RichEditor |
| | | }, |
| | | data() { |
| | | return { |
| | | form: { |
| | |
| | | visitTips: '', |
| | | frezzDays: null |
| | | }, |
| | | styleEditor:'border: 1px solid #ccc;display: inline-block;', |
| | | extensions: [ |
| | | new Doc(), |
| | | new Text(), |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | getWangedditor(val){ |
| | | this.form.visitNotice =val |
| | | }, |
| | | getWangedditor1(val){ |
| | | this.form.visitTips =val |
| | | }, |
| | | getWangedditor2(val){ |
| | | this.form.visitMap =val |
| | | }, |
| | | getData() { |
| | | getVisitConfigDTO({}) |
| | | .then(res => { |
| | |
| | | label: '驾驶å' |
| | | }, |
| | | { |
| | | filed: 'queryStatusForPower', |
| | | type: 'select', |
| | | label: 'ææç¶æ', |
| | | options: [ |
| | | { value: '9,10', label: 'å·²ææ' }, |
| | | { value: '6', label: 'æªææ' } |
| | | ] |
| | | }, |
| | | { |
| | | filed: 'selDate', |
| | | type: 'datetimerange', |
| | | label: 'ä½ä¸å®ææ¶é´æç´¢', |
| | |
| | | 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: 'æä½æ¶é´', |
| | |
| | | selDate: [], |
| | | fastdate: 0, |
| | | } |
| | | this.getList() |
| | | this.changeRadio('0') |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDriver = true |
| | |
| | | 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: 'æä½æ¶é´', |
| | |
| | | <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> |
| | |
| | | <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' |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | ids: [], |
| | | isShowDetail: false, |
| | | exLoading: false, |
| | | loading: false, |
| | |
| | | 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 => { |
| | |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | clear() { |
| | | this.pagination.page = 1 |
| | | this.filters = {} |
| | |
| | | </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> |
| | |
| | | "proxy": {
|
| | | "/gateway_interface": {
|
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å
|
| | | "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å
|
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å
|
| | | // "target": "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å
|
| | | "changeOrigin": true, // å
许跨å
|
| | | "pathRewrite": {
|
| | |
| | | }, |
| | | getPlatformGroup() { |
| | | getPlatformGroupList({ |
| | | queryData: 1, |
| | | queryData: 0, |
| | | queryType: 0 |
| | | }).then(res => { |
| | | this.platformGroupList = res.data || [] |
| | |
| | | |
| | | 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` |
| | | |
| | |
| | | "type": "module", |
| | | "scripts": { |
| | | "dev": "vite --host", |
| | | "serve": "vite --host", |
| | | "build": "vite build", |
| | | "preview": "vite preview" |
| | | }, |
| | |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | component: () => import('../views/PlatformCall.vue') |
| | | component: () => import('../views/LogisticsEfficiency.vue') |
| | | }, |
| | | { |
| | | path: '/PlatformCall', |
| | |
| | | name: 'EnergyConsum', |
| | | component: () => import('../views/EnergyConsum.vue') |
| | | }, |
| | | { |
| | | path: '/LogisticsControl', |
| | | name: 'LogisticsControl', |
| | | component: () => import('../views/LogisticsEfficiency.vue') |
| | | }, |
| | | ] |
| | | }) |
| | | |
| | |
| | | <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">çA12313</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">çA12313</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> |
| | |
| | | import dayjs from 'dayjs' |
| | | import ChargeRate from '@/components/ChargeRate.vue' |
| | | import * as echarts from 'echarts' |
| | | import VScaleScreen from 'v-scale-screen' |
| | | |
| | | |
| | | const weekMap = ['æææ¥', 'ææä¸', 'ææäº', 'ææä¸', 'ææå', 'ææäº', 'ææå
',] |
| | |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: [1,2,3,4,5,5] |
| | | data: [1, 2, 3, 4, 5, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1,2,3,4,4,5].map(i => { |
| | | data: [1, 2, 3, 4, 4, 5].map(i => { |
| | | return { |
| | | name: i, |
| | | value: i, |
| | |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: [1,2,3,4,5,5] |
| | | data: [1, 2, 3, 4, 5, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1,2,3,4,4,4000].map(i => { |
| | | data: [1, 2, 3, 4, 4, 4000].map(i => { |
| | | return { |
| | | name: i, |
| | | value: i, |
| | |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: [1,2,3,4,4,5] |
| | | data: [1, 2, 3, 4, 4, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1,2,3,4,5], |
| | | data: [1, 2, 3, 4, 5], |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | itemStyle: { |
| | |
| | | initOperation() |
| | | initLoadReal() |
| | | initEnergy() |
| | | }) |
| | | }) |
| | | |
| | | |
| | | </script> |
| | |
| | | |
| | | .left_box_two { |
| | | margin-bottom: 20px; |
| | | .load_wrap{ |
| | | |
| | | .load_wrap { |
| | | width: 100%; |
| | | height: 210px; |
| | | padding: 12px 12px; |
| | | .loadRef{ |
| | | |
| | | .loadRef { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | |
| | | } |
| | | |
| | | .left_box_three { |
| | | .energy_wrap{ |
| | | .energy_wrap { |
| | | width: 100%; |
| | | height: 200px; |
| | | .energyRef{ |
| | | |
| | | .energyRef { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | |
| | | |
| | | .right_box_one { |
| | | margin-bottom: 20px; |
| | | |
| | | .content { |
| | | height: 164px; |
| | | display: flex; |
| | |
| | | } |
| | | } |
| | | } |
| | | .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; |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | } |
| | | .right_box_three{ |
| | | .wrap{ |
| | | |
| | | .right_box_three { |
| | | .wrap { |
| | | padding: 8px; |
| | | .analyseRef{ |
| | | |
| | | .analyseRef { |
| | | width: 100%; |
| | | height: 210px; |
| | | } |
| | |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .time { |
| | | .time_wrap { |
| | | font-size: 26px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | |
| | | } |
| | | |
| | | .main_app { |
| | | width: 100%; |
| | | min-height: 100vh; |
| | | width: 1920px; |
| | | height: 980px; |
| | | color: #ffffff; |
| | | position: relative; |
| | | |
| | | .main_bg { |
| | | position: absolute; |
| | | left: 0; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
| | |
| | | }else{ |
| | | item.optTimeTemp = '-' |
| | | } |
| | | |
| | | } |
| | | // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm') |
| | | } |
| | |
| | | |
| | | public enum PlatformWarnEvent { |
| | | STOP_TIMEOUT(0, "åé è¶
æ¶","${carCode}æå°åé è¶
æ¶" ), |
| | | STOP_ERROR(1, "åé é误","${carCode}æå°åé é误" ); |
| | | STOP_ERROR(1, "åé é误","${carCode}æå°åé é误" ), |
| | | WORK_TIMEOUT(2, "ä½ä¸è¶
æ¶","${carCode}ä½ä¸è¶
æ¶" ); |
| | | |
| | | // æååé |
| | | private int key; |
| | |
| | | WORKING(3, "ä½ä¸ä¸","${param} ${param2} ä½ä¸ä¸" ), |
| | | WRONG_IN(4, "é误åé ","${param} ${param2} å½å车è¾é误åé ï¼è¯·å°½å¿«é©¶ç¦»" ), |
| | | TIMEOUT_IN(5, "è¶
æ¶åé ","${param} ${param2} å½å车è¾è¶
æ¶åé ï¼è¯·å°½å¿«é©¶ç¦»" ), |
| | | TIMEOUT_WORK(6, "ä½ä¸è¶
æ¶","${param} ${param2} å½å车è¾ä½ä¸è¶
æ¶" ), |
| | | ; |
| | | |
| | | // æååé |
| | |
| | | 2. ä½ä¸å®æï¼çA12345ä½ä¸å®æï¼è¯·å°½å¿«é©¶ç¦» |
| | | 3. é误åé ï¼çA12345æå°åé é误ï¼è¯·å°½å¿«é©¶ç¦» |
| | | 4. è¶
æ¶åé ï¼çA12345æå°åé è¶
æ¶ï¼è¯·å°½å¿«é©¶ç¦»è¯·å°½å¿«é©¶ç¦» |
| | | 5. ä½ä¸è¶
æ¶ï¼çA12345æå°åé è¶
æ¶ï¼è¯·å°½å¿«é©¶ç¦»è¯·å°½å¿«é©¶ç¦» |
| | | */ |
| | | public enum PlatformBroadcastContent { |
| | | CALLING(1, "å«å·ä¸","${param}请åå¾${param2}çå¾
ä½ä¸"), |
| | | DONE(2, "ä½ä¸å®æ","${param}ä½ä¸å®æï¼è¯·å°½å¿«é©¶ç¦»" ), |
| | | WRONG_IN(3, "é误åé ","${param}æå°åé é误ï¼è¯·å°½å¿«é©¶ç¦»" ), |
| | | TIMEOUT_IN(4, "è¶
æ¶åé ","${param}æå°åé è¶
æ¶ï¼è¯·å°½å¿«é©¶ç¦»è¯·å°½å¿«é©¶ç¦»" ), |
| | | TIMEOUT_WORK(5, "ä½ä¸è¶
æ¶","${param}ä½ä¸è¶
æ¶" ), |
| | | ; |
| | | |
| | | // æååé |
| | |
| | | @ApiOperation("ã访客系ç»ã宿¶æ´æ°å¾®ä¿¡å
¬ä¼å·accesstoken") |
| | | @GetMapping("/timer/wxtoken/updateWxAccessToken") |
| | | ApiResponse updateWxAccessToken(); |
| | | @ApiOperation("æå°ä»»å¡è¶
æ¶æ¥è¦") |
| | | @GetMapping("/timer/platformJob/platformJobTimeOut") |
| | | ApiResponse platformJobTimeOut(); |
| | | @ApiOperation("æå°ä»»å¡èªå¨è¿å·") |
| | | @GetMapping("/timer/platformJob/timeOutCallIn") |
| | | ApiResponse timeOutCallIn(); |
| | | |
| | | @ApiOperation("ãæ°ååæå°ãæå°ä½ä¸æ¥è¦ä¸å¡") |
| | | @GetMapping("/timer/platformJob/platformJobTimer") |
| | | ApiResponse platformJobTimer(); |
| | | |
| | | } |
| | |
| | | @Autowired |
| | | private PlatformJobService platformJobService; |
| | | |
| | | @ApiOperation("è¶
æ¶æ¥è¦æ°æ®") |
| | | @GetMapping("/platformJobTimeOut") |
| | | public ApiResponse platformJobTimeOut() { |
| | | @ApiOperation("æå°ä½ä¸æ¥è¦ä¸å¡") |
| | | @GetMapping("/platformJobTimer") |
| | | public ApiResponse platformJobTimer() { |
| | | platformJobService.timeOutReport(); |
| | | return ApiResponse.success("è¶
æ¶æ¥è¦æ°æ®"); |
| | | } |
| | | |
| | | |
| | | @ApiOperation("è¶
æ¶èªå¨è¿å·") |
| | | @GetMapping("/timeOutCallIn") |
| | | public ApiResponse timeOutCallIn() { |
| | | platformJobService.timeOutCallIn(); |
| | | return ApiResponse.success("èªå¨è¿å·"); |
| | | platformJobService.timeOutWork(); |
| | | return ApiResponse.success("æå°ä½ä¸æ¥è¦ä¸å¡"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | |
| | | |
| | | @ApiOperation("æ¹éç¦å¯ç¨") |
| | | @GetMapping("/updateStatus/batch") |
| | | @CloudRequiredPermission("business:smsconfig:update") |
| | | public ApiResponse updateStatusBatch(@RequestParam String ids,@RequestParam Integer status) { |
| | | String [] idArray = ids.split(","); |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for (String id : idArray) { |
| | | idList.add(Integer.valueOf(id)); |
| | | } |
| | | smsConfigService.updateStatusByIdInBatch(idList,status); |
| | | return ApiResponse.success(null); |
| | | } |
| | | |
| | | @ApiOperation("æ ¹æ®IDä¿®æ¹") |
| | | @PostMapping("/updateById") |
| | | @CloudRequiredPermission("business:smsconfig:update") |
| | |
| | | return ApiResponse.success(platformJobService.getLargeScreenData()); |
| | | } |
| | | |
| | | @LoginNoRequired |
| | | @ApiOperation("æå°ä»»å¡æµè¯å®æ¶æ¹æ³") |
| | | @GetMapping("/testTimer") |
| | | public ApiResponse testTimer(Integer type) { |
| | | if(Constants.equalsInteger(type ,1)){ |
| | | platformJobService.timeOutWork(); |
| | | }else if(Constants.equalsInteger(type ,2)){ |
| | | platformJobService.timeOutCallIn(); |
| | | }else if(Constants.equalsInteger(type ,3)){ |
| | | platformJobService.timeOutReport(); |
| | | } |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | } |
| | |
| | | @TableField(exist = false) |
| | | private String queryStatus; |
| | | |
| | | |
| | | @ApiModelProperty(value = "å¤ç¶ææ¥è¯¢ å¤ä¸ªä»¥,åå²") |
| | | @TableField(exist = false) |
| | | private String queryStatusForPower; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ä½ä¸ç±»åæ¥è¯¢ å¤ä¸ªä»¥,åå²") |
| | | @TableField(exist = false) |
| | | private String queryType; |
| | |
| | | package com.doumee.dao.business.vo; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.model.Approve; |
| | | import com.doumee.dao.business.model.Platform; |
| | | import com.doumee.dao.business.model.PlatformWmsDetail; |
| | |
| | | @ApiModelProperty(value = "æ¶è´§å°") |
| | | private String address; |
| | | |
| | | @ApiModelProperty(value = "0æªå®æ 1已宿 2已忶", example = "1") |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ä¸éç¶æï¼0=æªä¸éï¼1=å·²ä¸éï¼") |
| | | private Integer lockStatus; |
| | | |
| | |
| | | */ |
| | | void timeOutCallIn(); |
| | | |
| | | /** |
| | | * ä½ä¸è¶
æ¶ |
| | | */ |
| | | void timeOutWork(); |
| | | |
| | | } |
| | |
| | | */ |
| | | void updateById(SmsConfig smsConfig); |
| | | |
| | | void updateStatusByIdInBatch(List<Integer> ids,Integer status); |
| | | |
| | | /** |
| | | * æ¹é䏻鮿´æ° |
| | | * |
| | |
| | | } |
| | | model.setSpeed(speed); |
| | | } |
| | | PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(device.getNo(),device.getName(),model.getContent(),model.getSpeed(),1); |
| | | PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(0,device.getNo(),device.getName(),model.getContent(),model.getSpeed(),1); |
| | | platformBroadcastLogMapper.insert(log); |
| | | if(log.getHkStatus() == null || !Constants.equalsInteger(log.getHkStatus(), Constants.TWO)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼å±å¹å
容设置失败"+(log!=null?log.getHkInfo():"")); |
| | |
| | | .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) |
| | | |
| | | .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')") |
| | | .apply(pageWrap.getModel().getQueryStatusForPower() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatusForPower()+"')") |
| | | .apply(pageWrap.getModel().getQueryType() != null, " find_in_set(t.TYPE,'"+pageWrap.getModel().getQueryType()+"')") |
| | | .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart())) |
| | | .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd())) |
| | |
| | | if(Constants.equalsInteger(device.getType(),Constants.ZERO)&&sendLed){ |
| | | log.error("è°èµ·led------------------------------------------------------------------------------------------"); |
| | | //妿æ¯LED |
| | | PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(device.getHkNo(),device.getName(),ledContent,speed,1); |
| | | PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),ledContent,speed,1); |
| | | logList.add(log); |
| | | ledList.add(device.getHkId()); |
| | | }else if(Constants.equalsInteger(device.getType(),Constants.TWO)&&sendBroadcast){ |
| | |
| | | SmsConstants.platformJobContent.platformJobMove,oldPlatform.getName(),platform.getName() |
| | | ); |
| | | |
| | | this.broadcastAndLEed(platformJob,null, |
| | | StringUtils.isBlank(oldPlatform.getRemark())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getRemark() |
| | | platformJob.setPlatformName(platform.getName()); |
| | | this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getRemark())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(), |
| | | null |
| | | ); |
| | | |
| | | } |
| | |
| | | if (Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())) { |
| | | platformDataListResponse.setFinishTime(null); |
| | | } else { |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue(); |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(), workMinute); |
| | | platformDataListResponse.setFinishTime(overDate); |
| | | } |
| | |
| | | if(Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())){ |
| | | platformJob.setOptTime(0L); |
| | | }else{ |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue(); |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute); |
| | | platformJob.setOptTime(overDate.getTime()); |
| | | } |
| | | }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){ |
| | | platformJob.setOptTime(DateUtil.getXMinuteAfterDate(platformJob.getCallDate(),platformJob.getWorktimeOutAlarmTime()).getTime()); |
| | | platformJob.setOptTime(DateUtil.getXMinuteAfterDate(platformJob.getNewCallDate(),platformJob.getWorktimeOutAlarmTime()).getTime()); |
| | | } |
| | | } |
| | | largeScreenDataVO.setAllList(platformJobList); |
| | |
| | | return largeScreenDataVO; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * ä½ä¸å®æè¶
æ¶ |
| | | */ |
| | | @Override |
| | | public void timeOutReport(){ |
| | | //æ¥è¯¢è¶
æ¶æ°æ® |
| | |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .select(" ( now() > DATE_ADD(t.DONE_DATE ,INTERVAL t1.STAY_TIMEOUT_ALARM_TIME MINUTE) ) as isTimeOut ") |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE,Constants.PlatformJobStatus.AUTHED_LEAVE) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()) |
| | | .eq(PlatformJob::getInOut,Constants.ONE) |
| | | .isNotNull(PlatformJob::getDoneDate) |
| | | ); |
| | |
| | | List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .select(" ( now() > DATE_ADD(t.CALL_DATE ,INTERVAL t2.WAIT_CALL_TIME MINUTE) ) as isTimeOut ") |
| | | .select(" ( now() > DATE_ADD( ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 4 order by pl.CREATE_DATE desc limit 1 ) ,INTERVAL t2.WAIT_CALL_TIME MINUTE) ) as isTimeOut ") |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId) |
| | | .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED) |
| | | .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()) |
| | | .isNotNull(PlatformJob::getCallDate) |
| | | ); |
| | | //妿è¶
æ¶ å¤çæ°æ® å¹¶åéledä¸å¹¿æ |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä½ä¸è¶
æ¶ |
| | | */ |
| | | @Override |
| | | public void timeOutWork(){ |
| | | //æ¥è¯¢è¶
æ¶æ°æ® |
| | | List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .selectAs(Platform::getWorkRate, PlatformJob::getWorkRate) |
| | | .selectAs(Platform::getWorkTimeoutAlarmTime, PlatformJob::getWorktimeOutAlarmTime) |
| | | .select(" case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end workNum ") |
| | | .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ") |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey()) |
| | | .eq(PlatformJob::getInOut,Constants.ONE) |
| | | ); |
| | | //妿è¶
æ¶ å¤çæ°æ® å¹¶åéledä¸å¹¿æ |
| | | for (PlatformJob platformJob:platformJobList) { |
| | | |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute + platformJob.getWorktimeOutAlarmTime()); |
| | | if(overDate.getTime() < System.currentTimeMillis() ){ |
| | | //广æ ledéç¥ |
| | | this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.TIMEOUT_WORK.getInfo(), |
| | | Constants.PlatformBroadcastContent.TIMEOUT_WORK.getInfo()); |
| | | |
| | | SavePlatformWarnEventDTO savePlatformWarnEventDTO = new SavePlatformWarnEventDTO(); |
| | | savePlatformWarnEventDTO.setPlatformJobId(platformJob.getId()); |
| | | savePlatformWarnEventDTO.setPlatformId(platformJob.getPlatformId()); |
| | | savePlatformWarnEventDTO.setCarCode(platformJob.getCarCodeFront()); |
| | | savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.WORK_TIMEOUT.getKey()); |
| | | platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | wmsJobContractVO.setLockStatus( |
| | | wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getLockStatus() |
| | | ); |
| | | wmsJobContractVO.setStatus( |
| | | wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getStatus() |
| | | ); |
| | | } |
| | | wmsJobContractVOList.add(wmsJobContractVO); |
| | | } |
| | |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * çä¿¡ä¸å¡é
ç½®Serviceå®ç° |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void updateStatusByIdInBatch(List<Integer> ids,Integer status) { |
| | | if (CollectionUtils.isEmpty(ids) || Objects.isNull(status)) { |
| | | return; |
| | | } |
| | | smsConfigMapper.update(new UpdateWrapper<SmsConfig>() |
| | | .set("status",status) |
| | | .in("id",ids) |
| | | ); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void updateByIdInBatch(List<SmsConfig> smsConfigs) { |
| | | if (CollectionUtils.isEmpty(smsConfigs)) { |
| | | return; |
| | |
| | | } |
| | | if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ |
| | | //妿æ¯LED |
| | | PlatformBroadcastLog log = dealLedContentBiz(device.getHkNo(),device.getName(),content,speed,1); |
| | | PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1); |
| | | logList.add(log); |
| | | ledList.add(device.getHkId()); |
| | | }else if(Constants.equalsInteger(device.getType(),Constants.TWO)){ |
| | |
| | | public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames , String content1) { |
| | | PlatformBroadcastLog log = new PlatformBroadcastLog(); |
| | | content1 = content1.replace("${param}",model.getCarCodeFront()); |
| | | |
| | | log.setObjId(model.getId().toString()); |
| | | log.setCreateDate(new Date()); |
| | | log.setBizType(Constants.ONE); |
| | | log.setHkDate(new Date()); |
| | |
| | | log.setHkInfo("è¯·æ±æå"); |
| | | log.setHkStatus(Constants.TWO); |
| | | } |
| | | log.setDeviceType(Constants.ONE); |
| | | log.setDeviceType(Constants.ZERO); |
| | | log.setName("åéå¹¿æææ¥å
容"); |
| | | return log; |
| | | } |
| | | |
| | | public static PlatformBroadcastLog dealLedContentBiz(String hkNo,String hkName, String content,int speed,int color) { |
| | | public static PlatformBroadcastLog dealLedContentBiz(Integer platformId,String hkNo,String hkName, String content,int speed,int color) { |
| | | PlatformBroadcastLog log = new PlatformBroadcastLog(); |
| | | log.setCreateDate(new Date()); |
| | | log.setBizType(Constants.ONE); |
| | |
| | | log.setRemark(hkName); |
| | | log.setInfo(content); |
| | | log.setNum(Constants.ONE); |
| | | log.setObjId(platformId.toString()); |
| | | |
| | | TransparentChannelBodyRequest body = new TransparentChannelBodyRequest(); |
| | | TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); |