Merge remote-tracking branch 'origin/master'
已添加20个文件
已删除1个文件
已修改31个文件
| | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | |
| | | // ä»»å¡ä¸å¿å¤´é¨ |
| | | 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 } |
| | | }) |
| | | } |
| | |
| | | <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 => { |
| | |
| | | import * as echarts from 'echarts' |
| | | import { weeks } from '@/utils/config' |
| | | import { |
| | | getWorkbenchBody, |
| | | getWorkbenchHead, |
| | | getWorkbenchData, |
| | | getAppHeaderNav |
| | | } from '@/api' |
| | | const colors = ['#52a4f7', '#7678f7', '#5fc6d5'] |
| | |
| | | this.initEchart4() |
| | | }, |
| | | getWorkBody() { |
| | | getWorkbenchBody() |
| | | getWorkbenchData({queryType: 2}) |
| | | }, |
| | | getWorkHead() { |
| | | getWorkbenchHead() |
| | | getWorkbenchData({queryType: 1}) |
| | | }, |
| | | initEchart1() { |
| | | const myChart = echarts.init(document.getElementById('echart1')) |
| | |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#207FF7' // æçº¿ç¹çé¢è² |
| | | } |
| | | borderWidth: 1, |
| | | borderColor: '#fff', |
| | | color: '#207FF7' |
| | | }, |
| | | smooth: false |
| | | } |
| | |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#42D49D' // æçº¿ç¹çé¢è² |
| | | } |
| | | borderWidth: 1, |
| | | borderColor: '#fff', |
| | | color: '#42D49D' // æçº¿ç¹çé¢è² |
| | | }, |
| | | smooth: false |
| | | } |
| | |
| | | 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: 'æä½æ¶é´', |
| | |
| | | </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> |
| | |
| | | </pagination> |
| | | </div> |
| | | <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" /> |
| | | <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | 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' |
| | |
| | | components: { |
| | | GlobalWindow, |
| | | Pagination, |
| | | WaybillDetailRef |
| | | WaybillDetailRef, |
| | | DriverDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | statusMap, |
| | | isShowModal: false, |
| | | isShowDetail: false, |
| | | isShowDriver: false, |
| | | subLoading: false, |
| | | pagination: { |
| | | total: 0, |
| | |
| | | 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(() => { |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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 = {} |
| | |
| | | <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 |
| | |
| | | id: '', |
| | | type: '', |
| | | |
| | | title: '访客é¢çº¦è¯¦æ
', |
| | | title: 'ç©æµè½¦é¢çº¦è¯¦æ
', |
| | | isShowModal: false, |
| | | info: {}, |
| | | isShowAppr: false, |
| | |
| | | <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> |
| | |
| | | " 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" |
| | |
| | | </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> |
| | |
| | | |
| | | 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` |
| | | |
| | |
| | | "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 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}æå°åé é误" ), |
| | |
| | | |
| | | 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; |
| | |
| | | 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 æ±è¹è¹ |
| | |
| | | |
| | | @Autowired |
| | | private WmsService wmsService; |
| | | @Autowired |
| | | private TmsService tmsService; |
| | | |
| | | @ApiOperation("ãWMSãæ¨éå
¥åºåéç¥ä»»å¡") |
| | | @PostMapping("/push/inboundNotice") |
| | |
| | | doPringParam(request,"ãWMSãæ¨éåºå
¥åºä½ä¸å®æéç¥ä»»å¡"); |
| | | return new WmsBaseResponse(); |
| | | } |
| | | @ApiOperation("ãTMSãçµåéä¸éæ¶é´æ¥å£") |
| | | @LoginNoRequired |
| | | @PostMapping("/tms/lockStatusQuery") |
| | | public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(@RequestBody TmsLockStatusQueryRequest request ) { |
| | | |
| | | return tmsService.lockStatusQuery(request); |
| | | } |
| | | @ApiOperation("ãTMSãååå表æ¥å£") |
| | | @LoginNoRequired |
| | | @PostMapping("/tms/orderList") |
| | | public TmsBaseResponse<List<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request ) { |
| | | |
| | | return tmsService.orderList(request); |
| | | } |
| | | @ApiOperation("ãTMSãåå详æ
æ¥å£") |
| | | @LoginNoRequired |
| | | @PostMapping("/tms/orderInfo") |
| | | public TmsBaseResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request ) { |
| | | |
| | | return tmsService.orderInfo(request); |
| | | } |
| | | |
| | | public static void doPringParam(HttpServletRequest request,String name) { |
| | | try { |
| | |
| | | } |
| | | */ |
| | | |
| | | private String contratNumber ; //ååå· |
| | | private String contractNumber ; //ååå· |
| | | private String fromRepertotyName ; //åè´§å° |
| | | private String toRepertoty ; //å°è´§å° |
| | | private String plateNumber; // 车çå· ååæªé
è½½åæ |
| | |
| | | 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; |
| | |
| | | * çµåéä¸éæ¶é´æ¥å£ |
| | | * æ ¹æ®ååå·ï¼æ¥è¯¢çµåéä¸éæ
åµï¼å卿¹éæ¥è¯¢çæ
åµï¼ |
| | | * @param param åæ° |
| | | * @return WmsBaseResponse |
| | | * @return TmsBaseResponse |
| | | */ |
| | | @Override |
| | | public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){ |
| | |
| | | |
| | | 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){ |
| | |
| | | +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; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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; |
| | |
| | | * çµåéä¸éæ¶é´æ¥å£ |
| | | * æ ¹æ®ååå·ï¼æ¥è¯¢çµåéä¸éæ
åµï¼å卿¹éæ¥è¯¢çæ
åµï¼ |
| | | * @param param åæ° |
| | | * @return WmsBaseResponse |
| | | * @return TmsBaseResponse |
| | | */ |
| | | TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param); |
| | | |
| | |
| | | * ååå表æ¥å£ |
| | | * æ ¹æ®åºåIDéå+ç鿡件ï¼ååå·ãå¶åå¼å§æ¥æãå¶åç»ææ¥æãåè´§å°ãå°è´§å°ãç份ï¼ééè¦ï¼ï¼è¿åååå表信æ¯ï¼æç
§æ¶é´ååºå±ç¤ºï¼ |
| | | * @param param åæ° |
| | | * @return WmsBaseResponse |
| | | * @return TmsBaseResponse |
| | | */ |
| | | TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param); |
| | | |
| | | /** |
| | | * åå详æ
æ¥å£ |
| | | * @param param åæ° |
| | | * @return TmsBaseResponse |
| | | */ |
| | | TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param); |
| | | |
| | | |
| | | } |