From c72cb6959cbf43520fbc88f390e2e21da7fbfbf4 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 10 十月 2024 09:09:43 +0800
Subject: [PATCH] ll
---
admin/public/favicon.ico | 0
admin/src/components/business/OperaPlatformApproveTemplWindow.vue | 660 ++++++++++++++++++++++------------------------
screen/src/views/PlatformCall.vue | 112 ++++++-
admin/src/components/business/OperaDeviceLedWindow.vue | 2
admin/src/layouts/TableLayout1.vue | 4
admin/src/views/platform/LogisticsRecord/leaveAuth.vue | 2
admin/src/views/vehicle/components/OperaCategoryWindow.vue | 6
screen/vite.config.js | 3
admin/src/views/platform/platformGroup.vue | 4
admin/src/components/business/OperaCarsWindow.vue | 1
10 files changed, 410 insertions(+), 384 deletions(-)
diff --git a/admin/public/favicon.ico b/admin/public/favicon.ico
index c6ff5db..ec96d02 100644
--- a/admin/public/favicon.ico
+++ b/admin/public/favicon.ico
Binary files differ
diff --git a/admin/src/components/business/OperaCarsWindow.vue b/admin/src/components/business/OperaCarsWindow.vue
index f8bfc58..a81913f 100644
--- a/admin/src/components/business/OperaCarsWindow.vue
+++ b/admin/src/components/business/OperaCarsWindow.vue
@@ -16,6 +16,7 @@
label: 'name',
value: 'id',
children: 'childCategoryList',
+ checkStrictly: true
}"></el-cascader>
</el-form-item>
<el-form-item label="閫夋嫨缁勭粐锛�" prop="groupId">
diff --git a/admin/src/components/business/OperaDeviceLedWindow.vue b/admin/src/components/business/OperaDeviceLedWindow.vue
index 03cb79a..c135b7e 100644
--- a/admin/src/components/business/OperaDeviceLedWindow.vue
+++ b/admin/src/components/business/OperaDeviceLedWindow.vue
@@ -10,7 +10,7 @@
<el-input v-model="form.title" placeholder="璇疯緭鍏ED灞忔樉绀哄唴瀹�" v-trim/>
</el-form-item>
<el-form-item label="鎾斁閫熷害" prop="speed">
- <el-input type="number" v-model="form.speed" placeholder="璇疯緭鍏ユ挱鏀鹃�熷害(澶т簬0鏁板瓧锛�" v-trim/>
+ <el-input type="number" v-model="form.speed" placeholder="璇疯緭鍏ユ挱鏀鹃�熷害锛屾暟瀛楄秺灏忔挱鏀捐秺蹇紝寤鸿閫熷害8" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
diff --git a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
index 6ff22bc..3b093f9 100644
--- a/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
+++ b/admin/src/components/business/OperaPlatformApproveTemplWindow.vue
@@ -1,11 +1,5 @@
<template>
- <GlobalWindow
- :title="title"
- width="100%"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
+ <GlobalWindow :title="title" width="100%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<TableLayout>
<template v-slot:table-wrap>
<div class="config">
@@ -23,14 +17,10 @@
<img src="@/assets/images/peizhi_ar@2x.png" alt="" />
</div>
<div v-for="(item, index) in apprList" :key="index">
- <div
- class="item yellow"
- :class="{
+ <div class="item yellow" :class="{
active: activeIndex == index,
blue: item.type == '1',
- }"
- @click="flowClick(index)"
- >
+ }" @click="flowClick(index)">
<div class="head">{{ item.remark }}</div>
<div class="content">
<!-- 瀹℃壒 -->
@@ -40,25 +30,19 @@
</template>
<template v-if="item.memberType == '1'">
<div v-if="item.objIds && item.objIds.length === 1">
- <span
- >{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span
- >
+ <span>{{ item.objIds[0].name }}
+ {{ item.objIds[0].companyName }}</span>
<span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span
- >
+ 鎴栫</span>
<span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span
- >
+ 浼氱</span>
</div>
<div v-else-if="item.objIds && item.objIds.length > 1">
<span>{{ item.objIds[0].name }} 绛�</span>
<span v-if="item.approveType == 0 && item.type == '0'">
- 鎴栫</span
- >
+ 鎴栫</span>
<span v-if="item.approveType == 1 && item.type == '0'">
- 浼氱</span
- >
+ 浼氱</span>
</div>
<div v-else>璇烽�夋嫨</div>
<i class="el-icon-arrow-right"></i>
@@ -67,19 +51,14 @@
<!-- 鎶勯�� -->
<template v-if="item.type == 1">
<div v-if="item.objIds && item.objIds.length === 1">
- <span
- >{{ item.objIds[0].name }}
- {{ item.objIds[0].companyName }}</span
- >
+ <span>{{ item.objIds[0].name }}
+ {{ item.objIds[0].companyName }}</span>
</div>
<div v-else-if="item.objIds && item.objIds.length > 1">
<span>{{ item.objIds[0].name }} 绛�</span>
</div>
<div v-else>璇烽�夋嫨</div>
- <i
- v-if="item.memberType == '1'"
- class="el-icon-arrow-right"
- ></i>
+ <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i>
</template>
</div>
</div>
@@ -88,11 +67,7 @@
<div class="line"></div>
<img src="@/assets/images/peizhi_ar@2x.png" alt="" />
</template>
- <i
- v-if="apprList.length - 2 === index"
- @click="handleAddAppr()"
- class="el-icon-circle-plus add"
- ></i>
+ <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i>
</div>
</div>
</div>
@@ -102,171 +77,114 @@
<div class="config_data_item_label">閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�</div>
<div class="df_ac mb10">
<div>瀹℃壒鑺傜偣鍚嶇О</div>
- <el-input
- class="w200 ml10"
- v-model="apprList[activeIndex].remark"
- ></el-input>
+ <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input>
</div>
<!-- 鎶勯�佷汉 -->
<template v-if="apprList[activeIndex].type == '1'">
<div class="config_data_item_reviewed_content">
- <div
- v-for="mem in apprList[activeIndex].objIds"
- :key="mem.id"
- class="config_data_item_reviewed_content_item"
- >
+ <div v-for="mem in apprList[activeIndex].objIds" :key="mem.id"
+ class="config_data_item_reviewed_content_item">
<span>{{ mem.name }}</span>
<i class="el-icon-close"></i>
</div>
<span class="add" @click="selStaff">+娣诲姞</span>
</div>
</template>
- <el-radio-group
- v-if="apprList[activeIndex].type == '0'"
- v-model="apprList[activeIndex].memberType"
- >
-<!-- <el-radio :label="0">鐢宠浜�</el-radio>-->
+ <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType">
+ <!-- <el-radio :label="0">鐢宠浜�</el-radio>-->
<el-radio :label="1">鎸囧畾浜哄憳</el-radio>
<el-radio :label="2">閮ㄩ棬涓荤</el-radio>
</el-radio-group>
- <div
- class="config_data_item_reviewed"
- v-if="apprList[activeIndex].memberType == 1"
- >
+ <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1">
<div class="config_data_item_reviewed_label">
<span>鎸囧畾瀹℃牳浜�</span>
<span>涓嶈秴杩�20浜�</span>
</div>
<div class="config_data_item_reviewed_content">
- <div
- v-for="(mem, memIndex) in apprList[activeIndex].objIds"
- :key="mem.id"
- class="config_data_item_reviewed_content_item"
- >
+ <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id"
+ class="config_data_item_reviewed_content_item">
<span>{{ mem.name }}</span>
<i class="el-icon-close" @click="memDel(memIndex)"></i>
</div>
<span class="add" @click="selStaff">+娣诲姞</span>
</div>
</div>
- <div
- class="config_data_item_reviewed"
- v-if="apprList[activeIndex].memberType == 2"
- >
+ <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2">
<div class="config_data_item_reviewed_label">
<span>閮ㄩ棬涓荤</span>
</div>
<div class="config_data_item_reviewed_r">
<span>鐢宠浜虹殑</span>
- <el-select
- v-model="apprList[activeIndex].objLevel"
- placeholder="璇烽�夋嫨"
- style="margin: 0 20px 0 10px"
- >
+ <el-select v-model="apprList[activeIndex].objLevel" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px">
<el-option label="鐩存帴涓荤" :value="0" />
<el-option label="浜岀骇涓荤" :value="1" />
<el-option label="涓夌骇涓荤" :value="2" />
<el-option label="鍥涚骇涓荤" :value="4" />
</el-select>
- <el-checkbox
- v-model="apprList[activeIndex].noleaderOpt"
- :true-label="1"
- :false-label="0"
- >鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
+ <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1"
+ :false-label="0">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
</div>
</div>
</div>
- <div
- class="config_data_item"
- v-if="
+ <div class="config_data_item" v-if="
(apprList[activeIndex].memberType == 1 ||
apprList[activeIndex].memberType == 2) &&
apprList[activeIndex].type == '0'
- "
- >
+ ">
<div class="config_data_item_label">
瀹℃壒鏂瑰紡
<span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
</div>
- <el-radio-group
- v-model="apprList[activeIndex].approveType"
- style="display: flex; flex-direction: column"
- >
- <el-radio :label="0" style="margin-bottom: 20px"
- >鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio
- >
+ <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column">
+ <el-radio :label="0" style="margin-bottom: 20px">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
<el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
</el-radio-group>
</div>
<div class="config_data_submit">
- <el-button
- @click="onSubmit"
- :loading="subLoading"
- style="background: #435ebe"
- type="primary"
- >淇濆瓨閰嶇疆椤�</el-button
- >
- <el-button
- v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1"
- type="danger"
- plain
- @click="handleDel"
- >鍒犻櫎鑺傜偣</el-button
- >
+ <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe"
+ type="primary">淇濆瓨閰嶇疆椤�</el-button>
+ <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain
+ @click="handleDel">鍒犻櫎鑺傜偣</el-button>
</div>
</div>
</div>
</template>
<!-- -->
- <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="1000px" style="z-index: 99999" append-to-body>
+ <el-dialog title="閫夋嫨鍛樺伐" :visible.sync="isShowTransfer" width="900px" style="z-index: 99999" append-to-body>
<div class="staff_modal">
<div class="left">
- <div
- style="
+ <div style="
width: 100%;
height: 50px;
background: rgba(242, 242, 242, 1);
line-height: 50px;
text-align: center;
font-size: 14px;
- "
- >
+ ">
浼佷笟缁勭粐鏋舵瀯
</div>
<div style="width: 100%; height: 100%; overflow-y: scroll">
- <Tree
- :list="companyTree"
- :defaultProps="{
+ <Tree :list="companyTree" :defaultProps="{
name: 'name',
status: 'fsStatus',
children: 'childList',
id: 'id',
- }"
- @callback="callback"
- />
+ }" @callback="callback" />
</div>
</div>
- <el-transfer
- filterable
- :title="['鏈��', '宸查��']"
- openAll
- :props="{ label: 'name', key: 'keyTemp' }"
- filter-placeholder="鎼滅储鍛樺伐"
- v-model="searchForm.objIds"
- :data="memberList"
- class="transfer"
- >
+ <el-transfer filterable :titles="['鏈��', '宸查��']" openAll :props="{ label: 'name', key: 'keyTemp' }"
+ filter-placeholder="鎼滅储鍛樺伐" v-model="searchForm.objIds" :data="memberList" class="transfer">
</el-transfer>
</div>
<span slot="footer" class="dialog-footer">
- <el-button @click="isShowTransfer = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="TransferSub">纭� 瀹�</el-button>
- </span>
+ <el-button @click="isShowTransfer = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="TransferSub">纭� 瀹�</el-button>
+ </span>
</el-dialog>
</TableLayout>
<span slot="footer" class="dialog-footer">
- <el-button @click="visible= false">杩斿洖</el-button>
- </span>
+ <el-button @click="visible = false">杩斿洖</el-button>
+ </span>
</GlobalWindow>
</template>
@@ -274,7 +192,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import TableLayout from '@/layouts/TableLayout'
import Tree from '@/components/common/Tree'
-import {approveTemplSave, approveTemplById} from '@/api'
+import { approveTemplSave, approveTemplById } from '@/api'
import { fetchList } from '@/api/business/company'
import { fetchList as memberListPost } from '@/api/business/member'
import GlobalWindow from '@/components/common/GlobalWindow'
@@ -282,14 +200,14 @@
name: 'OperaPlatformReasonWindow',
extends: BaseOpera,
components: { Tree, GlobalWindow, TableLayout },
- data () {
+ data() {
return {
- model:{},
+ model: {},
reasonId: null,
activeType: '6',
subLoading: false,
apprList: [
- { remark: '瀹℃壒浜�', active: false,memberType:1, type: '1', objIds: [] },
+ { remark: '瀹℃壒浜�', active: false, memberType: 1, type: '1', objIds: [] },
{ remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
],
activeIndex: 0,
@@ -300,18 +218,18 @@
companyTree: []
}
},
- created () {
+ created() {
},
methods: {
- open (title, row) {
+ open(title, row) {
this.title = title + '銆�' + row.reason + '銆�'
this.visible = true
this.reasonId = row.id
this.model = row
this.getfindCompanyTreePage()
this.apprList = [
- { remark: '瀹℃壒浜�', active: false, type: '0',memberType:1, objIds: [] },
+ { remark: '瀹℃壒浜�', active: false, type: '0', memberType: 1, objIds: [] },
{ remark: '鎶勯�佷汉', active: false, type: '1', objIds: [] }
]
this.param = {}
@@ -321,7 +239,7 @@
this.companyTree = []
this.initDate()
},
- flowClick (i) {
+ flowClick(i) {
this.activeIndex = i
this.apprList.forEach((item, index) => {
if (i === index) {
@@ -339,8 +257,8 @@
}
})
},
- initDate () {
- if(this.model.approveTemplId){
+ initDate() {
+ if (this.model.approveTemplId) {
approveTemplById(this.model.approveTemplId).then(res => {
if (res && res.paramList) {
const arr = res.paramList || []
@@ -353,7 +271,7 @@
companyName: i.companyName
}
})
- }else{
+ } else {
item.objIds = []
}
})
@@ -365,7 +283,7 @@
})
}
},
- onSubmit () {
+ onSubmit() {
const { apprList, activeType } = this
const temp = JSON.parse(JSON.stringify(apprList))
temp.forEach((item, index) => {
@@ -379,7 +297,7 @@
this.subLoading = true
approveTemplSave({
type: activeType,
- reasonId:this.model.id,
+ reasonId: this.model.id,
paramList: temp
}).then(res => {
this.subLoading = false
@@ -389,17 +307,17 @@
this.subLoading = false
})
},
- handleDel () {
+ handleDel() {
const { activeIndex } = this
this.apprList.splice(activeIndex, 1)
this.activeIndex = 0
},
- handleAddAppr () {
- this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', active: false,memberType:1, type: 0, objIds: [] })
+ handleAddAppr() {
+ this.apprList.splice(this.apprList.length - 1, 0, { remark: '瀹℃壒浜�', active: false, memberType: 1, type: 0, objIds: [] })
// this.apprList.push({ remark: '瀹℃壒浜�', active: false, type: '0' })
},
// 鑾峰彇缁勭粐鏍�
- getfindCompanyTreePage () {
+ getfindCompanyTreePage() {
fetchList()
.then(res => {
if (res && res.length > 0) {
@@ -411,7 +329,7 @@
}
})
},
- getMemberList () {
+ getMemberList() {
memberListPost({
model: {
companyId: this.searchForm.companyId || '',
@@ -433,13 +351,13 @@
// console.log('defaultProps', res)
})
},
- callback (row) {
+ callback(row) {
console.log(row)
this.$set(this.searchForm, 'companyId', row.id)
this.$set(this.searchForm, 'erpOrgId', row.erpId)
this.getMemberList()
},
- TransferSub () {
+ TransferSub() {
const { activeIndex } = this
if (this.searchForm.objIds && this.searchForm.objIds.length > 0) {
if (this.searchForm.objIds.length > 20) return this.$message.warning('鏈�澶氶�夋嫨20浜�')
@@ -460,7 +378,7 @@
this.isShowTransfer = false
console.log(this.searchForm.objIds)
},
- memDel (memIndex) {
+ memDel(memIndex) {
const { activeIndex } = this
this.apprList.forEach((item, index) => {
if (activeIndex === index) {
@@ -472,11 +390,11 @@
}
})
},
- selStaff () {
+ selStaff() {
this.isShowTransfer = true
this.getMemberList()
},
- seleItem (i) {
+ seleItem(i) {
this.list.forEach((item, index) => {
item.active = index === i
})
@@ -485,175 +403,205 @@
}
</script>
<style lang="scss" scoped>
-.labelTip{
+.labelTip {
font-size: 12px;
color: #666666;
}
+
.config {
- width: 100%;
- padding-bottom: 20px;
- box-sizing: border-box;
- height: calc(100vh - 140px);
- display: flex;
- align-items: center;
- justify-content: space-between;
-.config_list {
- width: 543px;
- height: 100%;
- flex-shrink: 0;
- border-radius: 2px;
- padding: 20px;
- box-sizing: border-box;
- border: 1px solid #eeeeee;
- background: #f7f7f7;
-.config_list_head {
width: 100%;
- height: 40px;
+ padding-bottom: 20px;
+ box-sizing: border-box;
+ height: calc(100vh - 140px);
display: flex;
align-items: center;
justify-content: space-between;
-span {
- font-size: 18px;
- font-weight: 500;
- color: #222222;
+
+ .config_list {
+ width: 543px;
+ height: 100%;
+ flex-shrink: 0;
+ border-radius: 2px;
+ padding: 20px;
+ box-sizing: border-box;
+ border: 1px solid #eeeeee;
+ background: #f7f7f7;
+
+ .config_list_head {
+ width: 100%;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ span {
+ font-size: 18px;
+ font-weight: 500;
+ color: #222222;
+ }
+ }
+
+ .config_content {
+ width: 100%;
+ height: calc(100% - 40px);
+ padding-top: 45px;
+ box-sizing: border-box;
+ overflow-y: scroll;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+
+ &::-webkit-scrollbar {
+ width: 0;
+ }
+
+ .active {
+ border: 2px solid #4456ac !important;
+ }
+
+ .yellow {
+ background: #e89e42 !important;
+ }
+
+ .blue {
+ background: #5094f3 !important;
+ }
+
+ .arrows {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ position: relative;
+
+ .line {
+ width: 1px;
+ height: 60px;
+ background-color: #ccc;
+ }
+
+ .add {
+ font-size: 40px;
+ color: #2080f7;
+ position: absolute;
+ cursor: pointer;
+ z-index: 999;
+ top: 10px;
+ }
+
+ img {
+ width: 12px;
+ }
+ }
+
+ .item {
+ width: 200px;
+ cursor: pointer;
+ border: 2px solid #f7f7f7;
+ height: 80px;
+ background: #4456ac;
+ border-radius: 2px;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+
+ .head {
+ height: 32px;
+ line-height: 32px;
+ padding: 2px 12px;
+ color: #fff;
+ }
+
+ .content {
+ flex: 1;
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ padding: 0 12px;
+ justify-content: space-between;
+ }
+
+ &:last-child {
+ margin: 0 !important;
+ }
+ }
+ }
+ }
+
+ .config_data {
+ flex: 1;
+ height: 100%;
+ margin-left: 20px;
+
+ .config_data_submit {
+ margin-top: 50px;
+ }
+
+ .config_data_item {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 30px;
+
+ &:last-child {
+ margin: 0 !important;
+ }
+
+ .config_data_item_label {
+ font-size: 16px;
+ font-weight: 500;
+ color: #222222;
+ margin-bottom: 20px;
+
+ span {
+ font-size: 12px;
+ font-weight: 400;
+ color: #999999;
+ margin-left: 10px;
+ }
+ }
+
+ .config_data_item_reviewed {
+ width: 100%;
+ margin-top: 20px;
+
+ .config_data_item_reviewed_r {
+ margin-top: 10px;
+ width: 100%;
+ display: flex;
+ align-items: center;
+
+ span {
+ flex-shrink: 0;
+ font-size: 14px;
+ font-weight: 400;
+ color: #666666;
+ }
+ }
+
+ .config_data_item_reviewed_label {
+ display: flex;
+ align-items: center;
+
+ span {
+ &:nth-child(1) {
+ font-size: 14px;
+ font-weight: 400;
+ color: #222222;
+ }
+
+ &:nth-child(2) {
+ font-size: 12px;
+ font-weight: 400;
+ color: #999999;
+ margin-left: 8px;
+ }
+ }
+ }
+ }
+ }
+ }
}
-}
-.config_content {
- width: 100%;
- height: calc(100% - 40px);
- padding-top: 45px;
- box-sizing: border-box;
- overflow-y: scroll;
- display: flex;
- align-items: center;
- flex-direction: column;
-&::-webkit-scrollbar {
- width: 0;
- }
-.active {
- border: 2px solid #4456ac !important;
-}
-.yellow {
- background: #e89e42 !important;
-}
-.blue {
- background: #5094f3 !important;
-}
-.arrows {
- display: flex;
- flex-direction: column;
- align-items: center;
- position: relative;
-.line {
- width: 1px;
- height: 60px;
- background-color: #ccc;
-}
-.add {
- font-size: 40px;
- color: #2080f7;
- position: absolute;
- cursor: pointer;
- z-index: 999;
- top: 10px;
-}
-img {
- width: 12px;
-}
-}
-.item {
- width: 200px;
- cursor: pointer;
- border: 2px solid #f7f7f7;
- height: 80px;
- background: #4456ac;
- border-radius: 2px;
- position: relative;
- display: flex;
- flex-direction: column;
-.head {
- height: 32px;
- line-height: 32px;
- padding: 2px 12px;
- color: #fff;
-}
-.content {
- flex: 1;
- background-color: #fff;
- display: flex;
- align-items: center;
- padding: 0 12px;
- justify-content: space-between;
-}
-&:last-child {
- margin: 0 !important;
- }
-}
-}
-}
-.config_data {
- flex: 1;
- height: 100%;
- margin-left: 20px;
-.config_data_submit {
- margin-top: 50px;
-}
-.config_data_item {
- width: 100%;
- display: flex;
- flex-direction: column;
- margin-bottom: 30px;
-&:last-child {
- margin: 0 !important;
- }
-.config_data_item_label {
- font-size: 16px;
- font-weight: 500;
- color: #222222;
- margin-bottom: 20px;
-span {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 10px;
-}
-}
-.config_data_item_reviewed {
- width: 100%;
- margin-top: 20px;
-.config_data_item_reviewed_r {
- margin-top: 10px;
- width: 100%;
- display: flex;
- align-items: center;
-span {
- flex-shrink: 0;
- font-size: 14px;
- font-weight: 400;
- color: #666666;
-}
-}
-.config_data_item_reviewed_label {
- display: flex;
- align-items: center;
-span {
-&:nth-child(1) {
- font-size: 14px;
- font-weight: 400;
- color: #222222;
- }
-&:nth-child(2) {
- font-size: 12px;
- font-weight: 400;
- color: #999999;
- margin-left: 8px;
- }
-}
-}
-}
-}
-}
-}
+
.config_data_item_reviewed_content {
width: 400px;
margin-top: 10px;
@@ -665,46 +613,62 @@
display: flex;
align-items: flex-start;
flex-wrap: wrap;
-.add {
- font-size: 12px;
- font-weight: 400;
- color: #435ebe;
- cursor: pointer;
- margin-top: 3px;
+
+ .add {
+ font-size: 12px;
+ font-weight: 400;
+ color: #435ebe;
+ cursor: pointer;
+ margin-top: 3px;
+ }
+
+ .config_data_item_reviewed_content_item {
+ padding: 3px 5px;
+ background: #f4f7fc;
+ border-radius: 2px;
+ box-sizing: border-box;
+ margin-right: 10px;
+ margin-bottom: 10px;
+
+ span {
+ font-size: 12px;
+ font-weight: 400;
+ color: #333333;
+ }
+
+ i {
+ color: #949ba2;
+ margin-left: 10px;
+ cursor: pointer;
+ }
+ }
}
-.config_data_item_reviewed_content_item {
- padding: 3px 5px;
- background: #f4f7fc;
- border-radius: 2px;
- box-sizing: border-box;
- margin-right: 10px;
- margin-bottom: 10px;
-span {
- font-size: 12px;
- font-weight: 400;
- color: #333333;
-}
-i {
- color: #949ba2;
- margin-left: 10px;
- cursor: pointer;
-}
-}
-}
+
.staff_modal {
display: flex;
-.left {
- width: 300px;
- margin-right: 20px;
-}
-.transfer {
- height: 600px;
-::v-deep .el-transfer-panel__body {
- height: 500px;
-}
-::v-deep .el-transfer-panel__list.is-filterable {
- height: 480px;
-}
-}
+
+ .left {
+ width: 240px;
+ margin-right: 20px;
+ }
+
+ .transfer {
+ height: 600px;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ ::v-deep .el-transfer-panel{
+ flex: 1;
+ height: 100%;
+ }
+ ::v-deep .el-transfer-panel__body {
+ height: 500px;
+ }
+
+ ::v-deep .el-transfer-panel__list.is-filterable {
+ height: 480px;
+ }
+ }
}
</style>
diff --git a/admin/src/layouts/TableLayout1.vue b/admin/src/layouts/TableLayout1.vue
index dd2e38d..56992b0 100644
--- a/admin/src/layouts/TableLayout1.vue
+++ b/admin/src/layouts/TableLayout1.vue
@@ -8,10 +8,10 @@
</div>-->
<Profile :roles="roles" :permissions="permissions">
<div style="width: 100%; height: 100%; padding: 0 16px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between;">
- <div style="width: 300px; height: 100%; flex-shrink: 0; background: #ffffff;">
+ <div style="width: 240px; height: 100%; flex-shrink: 0; background: #ffffff;">
<slot name="menu"></slot>
</div>
- <div style="width: calc(100% - 310px); height: 100%">
+ <div style="width: calc(100% - 250px); height: 100%">
<!-- 鎼滅储琛ㄥ崟閮ㄥ垎 -->
<div class="table-search-form" style="padding: 0 !important;">
<div class="form-wrap">
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 688c2ef..032b282 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -122,7 +122,7 @@
{
filed: 'selDate',
type: 'datetimerange',
- label: '鎿嶄綔鏃堕棿',
+ label: '浣滀笟瀹屾垚鏃堕棿鎼滅储',
pickerOptions: {}
},
{
diff --git a/admin/src/views/platform/platformGroup.vue b/admin/src/views/platform/platformGroup.vue
index 52fb60f..62b3061 100644
--- a/admin/src/views/platform/platformGroup.vue
+++ b/admin/src/views/platform/platformGroup.vue
@@ -26,8 +26,8 @@
<span v-if="row.type == 2">甯傚叕鍙稿嵏璐�</span>
</template>
</el-table-column>
- <el-table-column prop="waitCallTime" label="鍙彿绛夊緟鏃堕棿锛堝垎閽燂級" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="waitCallTime" label="鍙彿绛夊緟鏃堕棿锛堝垎閽燂級" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" min-width="150px" align="center"></el-table-column>
<el-table-column
v-if="containPermissions(['business:platformgroup:update', 'business:platformgroup:delete'])"
label="鎿嶄綔"
diff --git a/admin/src/views/vehicle/components/OperaCategoryWindow.vue b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
index feaead6..962c1b8 100644
--- a/admin/src/views/vehicle/components/OperaCategoryWindow.vue
+++ b/admin/src/views/vehicle/components/OperaCategoryWindow.vue
@@ -1,13 +1,13 @@
<template>
<GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="涓�绾у垎绫�" prop="parentId">
+ <el-form-item label="鎵�灞炲垎绫�" prop="parentId">
<el-select v-model="form.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
<el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="浜岀骇鍒嗙被" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ簩绾у垎绫�" v-trim />
+ <el-form-item label="鍒嗙被鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ垎绫诲悕绉�" v-trim />
</el-form-item>
<!-- <el-form-item label="鐘舵��" prop="status">
<el-select v-model="form.status" placeholder="璇烽�夋嫨">
diff --git a/screen/src/views/PlatformCall.vue b/screen/src/views/PlatformCall.vue
index a3ed50c..dbe977f 100644
--- a/screen/src/views/PlatformCall.vue
+++ b/screen/src/views/PlatformCall.vue
@@ -1,5 +1,5 @@
<script setup>
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, nextTick } from 'vue'
import dayjs from 'dayjs'
import UQRCode from 'uqrcodejs'
import { getLargeScreenData } from '@/utils/request'
@@ -22,7 +22,8 @@
if (res.data && res.data.allList) {
contentList.value = res.data.allList.map(item => {
if (item.optTime) {
- item.optTimeTemp = dayjs.duration(item.optTime).format('HH灏忔椂mm鍒�')
+ item.optTimeTemp = dayjs(item.optTime).format('HH:mm')
+ // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm')
}
return item
})
@@ -106,7 +107,7 @@
var qr = new UQRCode()
// 璁剧疆浜岀淮鐮佸唴瀹�
qr.data = qrcode.value
- qr.size = 220
+ qr.size = 210
// 璋冪敤鍒朵綔浜岀淮鐮佹柟娉�
qr.make()
var canvas = document.getElementById("qrcode")
@@ -139,6 +140,51 @@
newDate.value = dayjs().format('YYYY-MM-DD')
newTime.value = dayjs().format('HH:mm')
}, 1000)
+
+const isFullscreen = ref(false);
+const handleFull = () => {
+ if(!isFullscreen.value){
+ handleFullScreen()
+ }else{
+ cancelFullscreen()
+ }
+}
+setTimeout(() => {
+ handleFull()
+}, 1000)
+const handler = () => {
+ isFullscreen.value = document.fullscreenElement !== null;
+ if (!isFullscreen) {
+ // 閫�鍑哄叏灞忔椂鍊欒В闄ょ洃鍚紝涓嶇劧姣忔鐩戝惉閮戒細娣诲姞涓�娆$粦瀹�
+ document.removeEventListener("fullscreenchange", handler);
+ }
+};
+document.addEventListener("fullscreenchange", handler);
+const handleFullScreen = () => {
+ let elem = document.documentElement
+ // 灏濊瘯鍚敤鍏ㄥ睆妯″紡
+ if (elem.requestFullscreen) {
+ elem.requestFullscreen()
+ } else if (elem.mozRequestFullScreen) { // 鍏煎 Firefox
+ elem.mozRequestFullScreen()
+ } else if (elem.webkitRequestFullscreen) { // 鍏煎 Chrome, Safari 鍜� Opera
+ elem.webkitRequestFullscreen()
+ } else if (elem.msRequestFullscreen) { // 鍏煎 IE/Edge
+ elem.msRequestFullscreen()
+ }
+}
+function cancelFullscreen() {
+ if (document.exitFullscreen) {
+ document.exitFullscreen();
+ } else if (document.msExitFullscreen) {
+ document.msExitFullscreen();
+ } else if (document.mozCancelFullScreen) {
+ document.mozCancelFullScreen();
+ } else if (document.webkitExitFullscreen) {
+ document.webkitExitFullscreen();
+ }
+}
+
</script>
<template>
<div class="main_app">
@@ -203,14 +249,14 @@
</div>
<div class="qrcode_wrap">
<div class="qrcode">
- <canvas id="qrcode" width="220" height="220"></canvas>
+ <canvas id="qrcode" width="210" height="210"></canvas>
</div>
<div class="title">璇锋壂鐮佺鍒�</div>
</div>
</div>
</div>
<div class="main_footer">
- <img src="@/assets/images/call/ic_news@2x.png" class="icon" alt="">
+ <img @click="handleFull" src="@/assets/images/call/ic_news@2x.png" class="icon" alt="">
<div class="title">璇锋牴鎹槦鍒楁彁绀轰俊鎭紝渚濇绛夊�欒繘鍦�</div>
<div class="icon"></div>
</div>
@@ -218,9 +264,10 @@
</template>
<style lang="scss" scoped>
-div{
+div {
box-sizing: border-box;
}
+
.main_app {
color: #fff;
position: fixed;
@@ -231,10 +278,10 @@
overflow: hidden;
background-color: #092030;
position: relative;
- z-index: -2;
display: flex;
flex-direction: column;
justify-content: space-between;
+
.main_header {
width: 100%;
height: 112px;
@@ -243,7 +290,7 @@
align-items: center;
justify-content: space-between;
padding: 0 50px;
-
+ z-index: 11;
.title {
font-weight: 800;
font-size: 48px;
@@ -288,15 +335,18 @@
display: flex;
padding: 30px 20px;
position: relative;
+
.list {
flex: 5;
margin-right: 20px;
display: flex;
flex-direction: column;
+
.line {
display: flex;
align-items: center;
- flex: 1;
+ height: 11.1%;
+
&:nth-of-type(2n) {
background: rgba(255, 255, 255, 0);
}
@@ -311,13 +361,15 @@
align-items: center;
flex-direction: column;
font-weight: 500;
- font-size: 36px;
+ font-size: 30px;
flex: 10;
height: 100%;
- .time_place{
+
+ .time_place {
font-weight: 500;
- font-size: 24px;
+ font-size: 22px;
}
+
.status {
/* padding: 0 28px; */
width: 170px;
@@ -348,8 +400,10 @@
}
.header {
- font-size: bold;
- font-size: 40px;
+ .item {
+ font-size: bold;
+ font-size: 36px;
+ }
background: linear-gradient(180deg, #00B5D1 0%, #003C57 100%) !important;
}
}
@@ -359,13 +413,14 @@
flex: 2;
display: flex;
flex-direction: column;
- border: 1px solid red;
+
.tip_wrap {
margin-bottom: 20px;
width: 100%;
position: relative;
/* flex-shrink: 0; */
flex: 1;
+
.current_plat {
display: flex;
flex-direction: column;
@@ -373,14 +428,14 @@
justify-content: center;
padding: 30px 40px;
color: #FFA000;
-
+ height: 100%;
.id_card {
- font-weight: bold;
+ font-weight: 500;
font-size: 68px;
}
.no {
- margin: 10px 0;
+ margin: 8px 0;
font-weight: 500;
font-size: 52px;
}
@@ -392,24 +447,27 @@
.plat {
color: #fff;
- margin: 0 10px;
+ margin: 0 6px;
}
}
.empty {
- padding: 30px 40px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
font-weight: 500;
- font-size: 30px;
-
+ font-size: 26px;
+ height: 100%;
.title {
text-align: center;
font-weight: bold;
- font-size: 36px;
- margin-bottom: 20px;
+ font-size: 32px;
+ margin-bottom: 16px;
}
.line {
- margin-bottom: 10px;
+ margin-bottom: 8px;
+ padding-left: 32px;
}
}
@@ -446,9 +504,9 @@
}
.title {
- margin-top: 20px;
+ margin-top: 16px;
font-weight: bold;
- font-size: 34px;
+ font-size: 28px;
color: #111111;
}
}
diff --git a/screen/vite.config.js b/screen/vite.config.js
index ed0cd2f..fe6a483 100644
--- a/screen/vite.config.js
+++ b/screen/vite.config.js
@@ -16,6 +16,9 @@
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
+ build: {
+ outDir: 'platform_screen'
+ },
server: {
proxy: {
"/gateway_interface": {
--
Gitblit v1.9.3