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