|
@@ -11,7 +11,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<div :class="dataFlag ? 'tableAuto' : treeData.length ? 'tableSacle' : 'tableAuto'" class="TablePage_content_right">
|
|
|
- <PublicPageTable :loading="loading" :selected="selected" :table-cols="tableCols" :table-btns="authBtns" :data="tableData" :header-cell-class-name="headerCellClass" :row-class-name="rowClass" :cell-class-name="cellClass" :formatter="tableFormatter" show-summary @mounted="tableMountedHandler" @load="load" @cell-click="cellClickHandler" @handleDetail="handleDetail" @handleEdit="handleEdit" @handleOther="handleOther" @handleRemove="handleRemove" @handleSelectionChange="handleSelectionChange" />
|
|
|
+ <PublicPageTable :loading="loading" :selected="selected" :table-cols="tableCols" :table-btns="authBtns" :data="tableData" :header-cell-class-name="headerCellClass" :row-class-name="rowClass" :cell-class-name="cellClass" :formatter="tableFormatter" :selectedDatas="selectedDatas" :selectedCheck="selectedDataCheck" show-summary @mounted="tableMountedHandler" @load="load" @cell-click="cellClickHandler" @handleDetail="handleDetail" @handleEdit="handleEdit" @handleOther="handleOther" @handleRemove="handleRemove" @handleSelectionChange="handleSelectionChange" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="TablePage_dialog">
|
|
@@ -97,7 +97,10 @@ export default {
|
|
|
tableKey: null,//表格主键
|
|
|
depMath: 0,
|
|
|
selected: 0, //是否勾选
|
|
|
- selectedDatas: [], //勾选数据
|
|
|
+ selectedDatas: [], //回显勾选的数据
|
|
|
+ selectedDatasCath: [],//回显数据缓存
|
|
|
+ selectedDataAlls: [], //勾选数据
|
|
|
+ selectedDataCheck: {}, //勾选树-选中
|
|
|
triggerserviceid: null, //勾选后查询的serviceid
|
|
|
}
|
|
|
},
|
|
@@ -229,7 +232,9 @@ export default {
|
|
|
//获取tree点击
|
|
|
treeNodeClick (data) {
|
|
|
if (this.selected) {
|
|
|
- this.treeCheckQuery(data)
|
|
|
+ const nrow = _.cloneDeep(data)
|
|
|
+ this.selectedDataCheck = nrow
|
|
|
+ this.treeCheckQuery(nrow)
|
|
|
} else {
|
|
|
const values = Object.values(data)
|
|
|
const filterItem = this.formatDefault(this.treeParameters, data)
|
|
@@ -245,6 +250,8 @@ export default {
|
|
|
if (!Object.keys(filterItem).length) return
|
|
|
const itemFilter = values.includes(-1) || values.includes('全部') ? { 1: 1 } : filterItem
|
|
|
const datacontent = { filter: itemFilter }
|
|
|
+ this.loading = true
|
|
|
+ this.selectedDataAlls = []
|
|
|
try {
|
|
|
const { code, returnData } = await Query({
|
|
|
page: 1,
|
|
@@ -254,13 +261,24 @@ export default {
|
|
|
size: 9999
|
|
|
});
|
|
|
if (code == 0) {
|
|
|
- this.selectedDatas = [...returnData]
|
|
|
+ const datas = []
|
|
|
+ this.tableData.filter(item => {
|
|
|
+ [...returnData].forEach(pt => {
|
|
|
+ if (item['serviceid'] == pt['serviceid']) {
|
|
|
+ datas.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.selectedDatas = [...datas]
|
|
|
+ this.selectedDatasCath = [...returnData]
|
|
|
+ this.selectedDataAlls.push([...datas])
|
|
|
} else {
|
|
|
this.$message.error("获取表格数据失败")
|
|
|
}
|
|
|
} catch (error) {
|
|
|
this.$message.error("获取表格数据失败")
|
|
|
}
|
|
|
+ this.loading = false
|
|
|
},
|
|
|
//格式化传递参数数据
|
|
|
formatDefault (item, data = {}) {
|
|
@@ -359,7 +377,6 @@ export default {
|
|
|
nrow.passparameters = this.resPassters(row)
|
|
|
}
|
|
|
this.tableForm = nrow
|
|
|
-
|
|
|
},
|
|
|
//表格-其他类型按钮操作
|
|
|
handleOther (row, auth) {
|
|
@@ -420,7 +437,74 @@ export default {
|
|
|
},
|
|
|
//表格-勾选
|
|
|
handleSelectionChange (val) {
|
|
|
- console.log(val)
|
|
|
+ this.selectedDataAlls.push([...val])
|
|
|
+ const ndatas = _.cloneDeep(this.selectedDataAlls)
|
|
|
+ if (ndatas.length == 1) {
|
|
|
+ this.sendCheckData('add', ndatas[0])
|
|
|
+ } else {
|
|
|
+ const [nitems1, nitems2] = [ndatas.at(-1), ndatas.at(-2)]
|
|
|
+ if (nitems1.length > nitems2.length) {
|
|
|
+ const res = this.findRepetData(nitems1, nitems2)
|
|
|
+ this.sendCheckData('add', res)
|
|
|
+ } else {
|
|
|
+ const res = this.findRepetData(nitems1, nitems2)
|
|
|
+ this.sendCheckData('del', res)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ findRepetData (nitems1, nitems2) {
|
|
|
+ const key = 'serviceid'
|
|
|
+ const res = [...nitems1, ...nitems2].filter(
|
|
|
+ (item) =>
|
|
|
+ !(
|
|
|
+ nitems1.some((p) => item[key] == p[key]) &&
|
|
|
+ nitems2.some((c) => item[key] == c[key])
|
|
|
+ )
|
|
|
+ )
|
|
|
+ return res
|
|
|
+ },
|
|
|
+ //发送新增编辑删除数据
|
|
|
+ sendCheckData (types, data, key = 'serviceid') {
|
|
|
+ const event = types == 'add' ? 1 : types == 'edit' ? 2 : 3
|
|
|
+ const querys = []
|
|
|
+ const items = _.cloneDeep(data)
|
|
|
+ const { serviceid, servicename } = items[0]
|
|
|
+ const { containerid, containercode, containername } = this.selectedDataCheck
|
|
|
+ const pitem = {
|
|
|
+ serviceid,
|
|
|
+ servicename,
|
|
|
+ containerid,
|
|
|
+ containercode,
|
|
|
+ containername
|
|
|
+ }
|
|
|
+ const params = {
|
|
|
+ serviceid: this.triggerserviceid,
|
|
|
+ datacontent: formatChange(pitem, event, key),
|
|
|
+ event,
|
|
|
+ }
|
|
|
+ event == 1 ? querys.push(newData(params)) : querys.push(moveData(params))
|
|
|
+ this.getAnscyData(querys)
|
|
|
+ },
|
|
|
+ //获取异步数据
|
|
|
+ async getAnscyData (allResult) {
|
|
|
+ if (!allResult.length) return
|
|
|
+ this.loading = true
|
|
|
+ const results = await Promise.allSettled(allResult)
|
|
|
+ results.map((item) => {
|
|
|
+ const { status, value } = item
|
|
|
+ if (status == 'fulfilled') {
|
|
|
+ const { code } = value
|
|
|
+ if (code == 0) {
|
|
|
+ this.treeCheckQuery(this.selectedDataCheck)
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ } else {
|
|
|
+ this.$message.error('操作失败')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.$message.error('网络错误')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.loading = false
|
|
|
},
|
|
|
// 新增/编辑-取消
|
|
|
submitClickClose (formName) {
|
|
@@ -679,19 +763,21 @@ export default {
|
|
|
const { code, returnData } = await Query(parmas);
|
|
|
if (code == 0) {
|
|
|
if (returnData.length === 0) {
|
|
|
- this.page--;
|
|
|
- this.noMore = true;
|
|
|
+ this.page--
|
|
|
+ this.noMore = true
|
|
|
}
|
|
|
- this.tableData.push(...returnData);
|
|
|
+ this.tableData.push(...returnData)
|
|
|
} else {
|
|
|
- this.page--;
|
|
|
- this.$message.error("获取表格数据失败");
|
|
|
+ this.page--
|
|
|
+ this.$message.error("获取表格数据失败")
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- this.page--;
|
|
|
+ this.page--
|
|
|
+ }
|
|
|
+ if (this.selected) {
|
|
|
+ this.noMore = true
|
|
|
}
|
|
|
- // this.noMore = true;
|
|
|
- this.loading = false;
|
|
|
+ this.loading = false
|
|
|
}
|
|
|
}
|
|
|
}
|