Commit 60d501d8 authored by “yiyousong”'s avatar “yiyousong”

pref:修改窗口关联业务

parent 7fe8831a
......@@ -157,39 +157,6 @@
</template>
</a-table>
</div>
<!-- <a-form-model
:model="formData"
:rules="rules"
ref="formData"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 18 }"
>
<a-form-model-item label="事项名称" prop="siteMatterId">
<a-select
style="width: 354px"
show-search
:filter-option="filterOption"
v-model="formData.siteMatterId"
placeholder="请选择事项"
@change="handleChange"
>
<a-select-option
v-for="v in siteMatterData"
:key="v.id"
:value="v.id"
>
{{ v.matterName }}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="排序" prop="sort">
<a-input v-model="formData.sort" placeholder="请输入排序" />
</a-form-model-item>
<a-form-model-item label="是否显示" prop="isShow">
<y-switch v-model="formData.isShow"></y-switch>
</a-form-model-item>
</a-form-model> -->
</a-modal>
</div>
</template>
......@@ -219,6 +186,7 @@ const leftColumns = [
{
title: "事项名称",
dataIndex: "matterName",
ellipsis: true,
},
{
title: "排序",
......
<template>
<!-- 关联业务 -->
<div>
<a-modal
title="关联业务"
:visible="Visible"
@cancel="handleClose"
width="600px"
:maskClosable="false"
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button :loading="btnLoading" type="primary" @click="handleWork"
>确定</a-button
>
</template>
<div class="main">
<div class="mb20">
<span>窗口名称:</span>
<span style="color: #0595fd"
>{{ formData.windowName }}-{{ formData.fromnum }}</span
>
</div>
<div class="business-search">
<a-input-search
style="width: 300px"
placeholder="请输入业务名称搜索"
enter-button="搜索"
v-model="businessName"
@search="onSearch"
allowClear
/>
</div>
<a-table
bordered
ref="tableList"
:loading="loading"
:scroll="{ y: 400 }"
size="small"
:expandIconColumnIndex="2"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
defaultPageSize: 10000,
current: page,
total: total,
size: 'small',
onChange: changePage,
}"
:columns="columns"
:data-source="siteBusinessList"
:rowKey="(record) => record.id"
:row-selection="{
selectedRowKeys: rowKeys,
onChange: handleChange,
onSelect: onSelectRow,
}"
>
<template
v-if="record.parentId === 0"
slot="num"
slot-scope="text, record, index"
>
<span>
{{ index + 1 }}
</span>
</template>
</a-table>
</div>
</a-modal>
</div>
</template>
<script>
import { getSiteBusinessList } from "@/services/business";
import { addBusinessToWindow } from "@/services/dept";
import local from "@/utils/local";
const columns = [
{
title: "序号",
width: "50px",
scopedSlots: { customRender: "num" },
},
{
title: "业务名称",
align: "left",
dataIndex: "businessName",
},
];
export default {
props: {
visibleWork: {
type: Boolean,
required: true,
default: false,
},
},
data() {
return {
columns,
siteId: local.getLocal("siteId"), // 站点id
loading: false,
btnLoading: false,
size: -1,
page: 1,
total: 0,
siteBusinessList: [], // 站点业务列表
businessName: "",
rowKeys: [],
formData: {
windowId: "", // 窗口id
windowName: "", // 窗口名称
siteBusinessId: "", // 业务id
},
};
},
computed: {
Visible: {
get() {
return this.visibleWork;
},
set(val) {
this.$emit("update:visibleWork", val);
},
},
},
created() {},
methods: {
// 获取窗口信息
getWindowInfo(info) {
this.formData = info;
if (info.businessIds.length) {
this.rowKeys = info.businessIds;
} else {
this.rowKeys = [];
}
this.getSiteBusinessList();
},
// 去掉空children
delChildren(arr) {
return arr.map((v) => {
if (v.children && v.children.length > 0) {
this.delChildren(v.children);
} else {
delete v.children;
}
return v;
});
},
// 获取站点业务列表
async getSiteBusinessList() {
this.loading = true;
let res = await getSiteBusinessList({
page: this.page,
size: this.size,
siteId: this.siteId,
businessName: `%${this.businessName}%`,
});
this.loading = false;
if (res.data.code === 1) {
let { data, total } = res.data.data;
this.total = total;
this.siteBusinessList = this.delChildren(data);
}
},
// 搜索
onSearch() {
this.page = 1;
this.getSiteBusinessList();
},
handleClose() {
this.matterKeys = [];
this.Visible = false;
},
// 选中
handleChange(keys) {
this.rowKeys = keys;
},
changePage() {},
onSelectRow(record, selected) {
if (selected && record.children.length) {
record.children.forEach((v) => {
this.rowKeys.push(v.id);
});
} else {
this.rowKeys = this.rowKeys.filter((v) => v != record.id);
}
},
// 保存窗口关联业务
async handleWork() {
this.btnLoading = true;
let res = await addBusinessToWindow({
...this.formData,
businessIds: this.rowKeys.join(","),
});
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg);
this.$emit("addSuccess");
this.Visible = false;
}
this.btnLoading = false;
},
// 重置
handleReset() {
this.rowKeys = [];
},
},
};
</script>
<style lang="less" scoped>
.business-search {
margin-bottom: 20px;
text-align: right;
}
</style>
\ No newline at end of file
......@@ -295,8 +295,8 @@ export default {
});
let { code, msg } = res.data;
if (code === 1) {
this.$parent.getWindowListData();
this.$message.success(msg);
this.$emit("addSuccess");
this.handleClose();
}
}
......
......@@ -147,66 +147,6 @@
</a-table>
</div>
</div>
<!-- 关联业务 -->
<div>
<a-modal
title="关联业务"
:visible="visibleWork"
@cancel="visibleWork = false"
width="600px"
:maskClosable="false"
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleWork">确定</a-button>
</template>
<a-form-model
:model="formData"
ref="formData"
:rules="rules"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-form-model-item
label="窗口名称"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 16 }"
>
<span style="color: #0595fd">{{ formData.windowName }}</span>
</a-form-model-item>
<!-- <a-form-model-item label="是否关联">
<a-switch v-model="isRelevancy" />
</a-form-model-item> -->
<a-form-model-item
class="business-list"
label="业务列表"
prop="businessIds"
>
<a-checkbox-group
v-if="business.length > 0"
v-model="formData.businessIds"
>
<a-checkbox
v-for="v in business"
:key="v.id"
:value="v.businessId"
>{{ v.businessName }}</a-checkbox
>
</a-checkbox-group>
<a-empty v-else :image="simpleImage" />
</a-form-model-item>
</a-form-model>
<!-- <div style="text-align: right">
<a-pagination
simple
:current="businessPage"
:total="businessTotal"
@change="changeBusinessPage"
/>
</div> -->
</a-modal>
</div>
</div>
<!-- 部门管理弹窗 -->
<adddepartment
......@@ -221,7 +161,14 @@
ref="addwindow"
:deptList="department"
:WindowTitle="WindowTitle"
@addSuccess="getWindowListData"
></addwindow>
<!-- 关联窗口 -->
<addWindowBusiness
ref="addWindowBusiness"
:visibleWork.sync="visibleWork"
@addSuccess="getWindowListData"
></addWindowBusiness>
</div>
</template>
......@@ -229,14 +176,13 @@
import { Empty } from "ant-design-vue";
import adddepartment from "./components/adddepartment.vue";
import addwindow from "./components/addwindow.vue";
import { getSiteBusinessList } from "@/services/business";
import addWindowBusiness from "./components/addWindowBusiness.vue";
import local from "@/utils/local";
import {
getDeptList,
delDept,
getWindowList,
delWindow,
addBusinessToWindow,
} from "@/services/dept";
const columns = [
......@@ -309,6 +255,7 @@ export default {
components: {
adddepartment,
addwindow,
addWindowBusiness,
},
data() {
return {
......@@ -324,12 +271,6 @@ export default {
deptId: "", // 部门搜索窗口
active: undefined, // 部门激活
// isRelevancy: false,
formData: {
// 关联表单
windowId: "",
businessIds: [],
windowName: "",
},
columns,
formVisible: false,
visibleWork: false,
......@@ -384,7 +325,6 @@ export default {
if (!this.$route.meta.isBack) {
Object.assign(this.$data, this.$options.data());
this.getDeptListData();
this.getBusinessData();
this.getWindowListData();
} else {
this.$route.meta.isBack = false;
......@@ -420,29 +360,24 @@ export default {
}
},
// 获取站点业务数据
async getBusinessData(obj = {}) {
let res = await getSiteBusinessList({
page: 1,
size: -1,
siteId: this.siteId,
...obj,
});
let { data } = res.data.data;
this.business = data
.map((v) => {
if (v.children && v.children.length) {
return v.children;
} else {
return v;
}
})
.flat();
this.business = this.delChildren(this.business);
},
// 关联业务翻页
// changeBusinessPage(cur) {
// this.businessPage = cur;
// this.getBusinessData();
// async getBusinessData(obj = {}) {
// let res = await getSiteBusinessList({
// page: 1,
// size: -1,
// siteId: this.siteId,
// ...obj,
// });
// let { data } = res.data.data;
// this.business = data
// .map((v) => {
// if (v.children && v.children.length) {
// return v.children;
// } else {
// return v;
// }
// })
// .flat();
// this.business = this.delChildren(this.business);
// },
// 新增部门
showModalAdd() {
......@@ -578,35 +513,20 @@ export default {
},
// 窗口业务
workModal(data) {
this.formData.windowName = data.name;
this.formData.windowId = data.id;
let obj = {
windowName: data.name,
windowId: data.id,
fromnum: data.fromnum,
};
if (data.windowBusinessList) {
this.formData.businessIds = data.windowBusinessList.map(
(v) => v.siteBusinessId
);
obj.businessIds = data.windowBusinessList.map((v) => v.siteBusinessId);
} else {
this.formData.businessIds = [];
obj.businessIds = [];
}
this.visibleWork = true;
this.$refs.addWindowBusiness.getWindowInfo(obj);
},
// 保存窗口关联业务
handleWork() {
this.$refs.formData.validate(async (valid) => {
if (valid) {
let res = await addBusinessToWindow({
...this.formData,
businessIds: this.formData.businessIds.join(","),
});
let { code, msg } = res.data;
if (code === 1) {
this.getWindowListData();
this.$message.success(msg);
this.$refs.formData.resetFields();
this.visibleWork = false;
}
}
});
},
// 重置业务窗口
handleReset() {
this.$refs.formData.resetFields();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment