From 1cc34fc78f72e3302cb1fb3b842c08f9de62a461 Mon Sep 17 00:00:00 2001
From: xy <271556543@qq.com>
Date: Wed, 24 Jan 2024 11:57:34 +0800
Subject: [PATCH] 1
---
public/index.html | 4 ++
src/api/system/department.js | 5 +-
src/api/user.js | 22 ++++---
src/components/XyTable/index.vue | 28 ++++++---
src/utils/mergeTableRow.js | 4 +-
.../bigScreen/component/centerRight1.vue | 6 +-
.../bigScreen/component/detailTransfer.vue | 13 ++--
.../bigScreen/component/transferBoard.vue | 50 ++++++++++++---
src/views/order/component/createDispatch.vue | 4 ++
src/views/order/handle.vue | 63 +++++++++++++++++--
10 files changed, 154 insertions(+), 45 deletions(-)
diff --git a/public/index.html b/public/index.html
index 0daf6ee..7b31c6b 100644
--- a/public/index.html
+++ b/public/index.html
@@ -4,6 +4,10 @@
+
+
+
+
<%= webpackConfig.name %>
diff --git a/src/api/system/department.js b/src/api/system/department.js
index b9e366f..824bcda 100644
--- a/src/api/system/department.js
+++ b/src/api/system/department.js
@@ -8,10 +8,11 @@ export function save(data) {
})
}
-export function listdept() {
+export function listdept(isLoading=false) {
return request({
url: '/api/admin/department',
- method: 'get'
+ method: 'get',
+ isLoading
})
}
diff --git a/src/api/user.js b/src/api/user.js
index e12d073..0a06fe7 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -1,32 +1,36 @@
import request from '@/utils/request'
-export function login(data) {
+export function login(data,isLoading=false) {
return request({
url: '/api/admin/auth/login',
method: 'post',
- data
+ data,
+ isLoading
})
}
-export function getInfo(token) {
+export function getInfo(token,isLoading=false) {
return request({
url: '/api/admin/auth/me',
method: 'post',
- params: { token }
+ params: { token },
+ isLoading
})
}
-export function logout() {
+export function logout(isLoading=false) {
return request({
url: '/api/admin/auth/logout',
- method: 'post'
+ method: 'post',
+ isLoading
})
}
-export function getAuthMenu(token) {
+export function getAuthMenu(token,isLoading=false) {
return request({
url: '/api/admin/auth/permissions',
method: 'get',
- params: { token }
+ params: { token },
+ isLoading
})
-}
\ No newline at end of file
+}
diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue
index 35ef376..6a5d384 100644
--- a/src/components/XyTable/index.vue
+++ b/src/components/XyTable/index.vue
@@ -20,6 +20,8 @@ export default {
type: String,
default: "data",
}, //请求后需要获取表格数据键名
+ formatListData: Function,//数据格式处理方法
+ btnCondition: Function,//操作按钮条件
//操作权限
auths: {
@@ -740,13 +742,15 @@ export default {
let dom = [];
_this.auths.forEach((item, index) => {
if (this.btnToMore && _this.moreAuths.find(j => j === item)) return
- if (_this.$scopedSlots[item]) {
- flag = index;
- dom.push(_this.$scopedSlots[item](scope, item, index));
- } else {
- if (btns.get(item)) {
+ if (!this.btnCondition || (this.btnCondition && typeof this.btnCondition === 'function' && this.btnCondition(scope, item, index))) {
+ if (_this.$scopedSlots[item]) {
flag = index;
- dom.push(btns.get(item));
+ dom.push(_this.$scopedSlots[item](scope, item, index));
+ } else {
+ if (btns.get(item)) {
+ flag = index;
+ dom.push(btns.get(item));
+ }
}
}
})
@@ -762,11 +766,19 @@ export default {
},
},
computed: {
- tableFormat() {
+ tableFormat () {
return this.tableItem.filter((item) => {
return this.checkTable.indexOf(item.prop) !== -1;
});
},
+ tableData () {
+ if (this.formatListData && typeof this.formatListData === 'function') {
+ console.log(this.formatListData(this.action ? this.listData : this.list))
+ return this.formatListData(this.action ? this.listData : this.list)
+ } else {
+ return this.action ? this.listData : this.list
+ }
+ }
},
watch:{
tableItem(newVal){
@@ -807,7 +819,7 @@ export default {
class="v-table"
v-loading={this.loading}
ref="table"
- data={this.action ? this.listData : this.list}
+ data={this.tableData}
height={this.height ?? this.tableHeight}
max-height={this.maxHeight}
stripe={this.stripe}
diff --git a/src/utils/mergeTableRow.js b/src/utils/mergeTableRow.js
index 34a99c1..05f7ebd 100644
--- a/src/utils/mergeTableRow.js
+++ b/src/utils/mergeTableRow.js
@@ -18,7 +18,7 @@ export function mergeTableRow (config) {
const rowVal = v[firstMerge] + '-' + v[m]
// 需要合并行的第二行以及之后行会走if
// m === firstMerge 判断需要合并的列是否是基准列,如果是则只满足前面的条件,如果不是则需满足前面+后面的条件
- if (mList[rowVal] && mList[rowVal].newIndex === index && (m === firstMerge ? true : data[index][firstMerge + '-span'].rowspan === 0)) {
+ if (mList[rowVal] && mList[rowVal].newIndex === index && (m === firstMerge ? true : data[index][firstMerge + '-span']?.rowspan === 0)) {
// 判断受影响的列是否是需要合并的列
const flag = firstMergeColNames.filter((f) => {
return f === m
@@ -28,7 +28,7 @@ export function mergeTableRow (config) {
return mc === firstMerge
}).length === 0
// 判断基准列只有一行的时候,直接赋值rowspan和colspan为1
- if ((mcFlag && flag) || (flag && data[index][firstMerge + '-span'] && data[index][firstMerge + '-span'].rowspan === 1)) {
+ if ((mcFlag && flag) || (flag && data[index][firstMerge + '-span'] && data[index][firstMerge + '-span']?.rowspan === 1)) {
v[m + '-span'] = {
rowspan: 1,
colspan: 1
diff --git a/src/views/bigScreen/component/centerRight1.vue b/src/views/bigScreen/component/centerRight1.vue
index fb34f9b..50ad871 100644
--- a/src/views/bigScreen/component/centerRight1.vue
+++ b/src/views/bigScreen/component/centerRight1.vue
@@ -15,7 +15,7 @@
end_time: '关闭时间'
}"
@refresh="getTransfer(true)"
- @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
+ @showDetail="({ item, isShow }) => ($refs['detailTransfer'].readonly = isShow,$refs['detailTransfer'].setData(item),$refs['detailTransfer'].show())">
执行中
@@ -27,7 +27,7 @@
end_time: '关闭时间',
}"
@refresh="getTransfer(true)"
- @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
+ @showDetail="({ item, isShow }) => ($refs['detailTransfer'].readonly = isShow,$refs['detailTransfer'].setData(item),$refs['detailTransfer'].show())">
已完成
@@ -40,7 +40,7 @@
act_end_time: '关闭执行时间',
}"
@refresh="getTransfer(true)"
- @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
+ @showDetail="({ item, isShow }) => ($refs['detailTransfer'].readonly = isShow,$refs['detailTransfer'].setData(item),$refs['detailTransfer'].show())">
diff --git a/src/views/bigScreen/component/detailTransfer.vue b/src/views/bigScreen/component/detailTransfer.vue
index 0df4ecb..c5d6471 100644
--- a/src/views/bigScreen/component/detailTransfer.vue
+++ b/src/views/bigScreen/component/detailTransfer.vue
@@ -44,7 +44,7 @@
执行状态 |
-
+
@@ -56,7 +56,7 @@
-
+
-
+
-
+
@@ -93,9 +93,9 @@
-
+
-
+
@@ -137,6 +137,7 @@ export default {
data() {
return {
isShow: false,
+ readonly: false,
data: {},
typeMap: new Map([
[1,'待下发'],
diff --git a/src/views/bigScreen/component/transferBoard.vue b/src/views/bigScreen/component/transferBoard.vue
index b2c0122..364415b 100644
--- a/src/views/bigScreen/component/transferBoard.vue
+++ b/src/views/bigScreen/component/transferBoard.vue
@@ -9,14 +9,17 @@
line-height: ${heights[index]}px;
transition: all .2s;
`"
- @click="showDetail(item)">
+ @click="showDetail(item,true)">
- {{ item.equipment_id_equipments_id_relation ? item.equipment_id_equipments_id_relation.name : '' }}
-
+ {{ item.equipment_id_equipments_id_relation ? item.equipment_id_equipments_id_relation.name : '' }}
+
+
+
+
{
+ let copyData = deepCopy(item);
+ copyData.status = item.status === 2 ? 3 : 5;
+ for (let key in copyData) {
+ if (/_relation/g.test(key)) {
+ delete copyData[key]
+ }
+ }
+ save({
+ table_name: 'transfers',
+ ...copyData
+ }).then(_ => {
+ this.$emit('refresh')
+ })
+ })
+ } else {
+ this.nowRow = deepCopy(item);
+ this.$emit('showDetail',item)
+ }
},
setTransferStatus (data) {
@@ -210,9 +240,9 @@ export default {
setStatusText () {
return function (status) {
const textMap = new Map([
- [2,'确认开启'],
+ [2,'通知现场'],
[3,'确认开启'],
- [4,'确认关闭'],
+ [4,'通知现场'],
[5,'确认关闭']
])
return textMap.get(status)
diff --git a/src/views/order/component/createDispatch.vue b/src/views/order/component/createDispatch.vue
index bc4367b..5c8d6a7 100644
--- a/src/views/order/component/createDispatch.vue
+++ b/src/views/order/component/createDispatch.vue
@@ -827,6 +827,10 @@ export default {
message: `成功创建${res.length}条调令`,
});
this.$bus.$emit("createdTransfer");
+
+ if (isNeed) {
+ this.$router.push('/dispatch/handle')
+ }
})
.catch((_) => {
loadingInstance.close();
diff --git a/src/views/order/handle.vue b/src/views/order/handle.vue
index f8fcf2c..ab73930 100644
--- a/src/views/order/handle.vue
+++ b/src/views/order/handle.vue
@@ -272,7 +272,7 @@
-
+
@@ -283,6 +283,9 @@
|