|
@@ -9,7 +9,18 @@
|
|
|
<cButton @toAdd="toAdd()"> </cButton>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="thr">
|
|
|
- <cTable :fields="fields" :opera="opera" :list="list" @query="search" :total="total" @edit="toEdit" @del="toDel"> </cTable>
|
|
|
+ <cTable :fields="fields" :opera="opera" :list="list" @query="search" :total="total" @edit="toEdit" @del="toDel">
|
|
|
+ <template #leader="{ item, row }">
|
|
|
+ <template v-if="item.model === 'leader'">
|
|
|
+ <span size="small" type="primary">{{ getProps(row, item.model) }}</span>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template #accounting="{ item, row }">
|
|
|
+ <template v-if="item.model === 'accounting'">
|
|
|
+ <span size="small" type="primary">{{ getProps(row, item.model) }}</span>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </cTable>
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -21,16 +32,16 @@
|
|
|
<el-option @click="toChange(i)" v-for="i in officeList" :key="i._id" :label="i.name" :value="i._id"></el-option>
|
|
|
</template>
|
|
|
<template #is_use>
|
|
|
- <el-radio v-for="i in is_useList" :key="i.value" :label="i.label">{{ i.label }}</el-radio>
|
|
|
+ <el-radio v-for="(i, index) in is_useList" :key="index" :label="i.value">{{ i.label }}</el-radio>
|
|
|
</template>
|
|
|
<template #leader>
|
|
|
<el-select v-model="form.leader" multiple placeholder="请选择审批领导" style="width: 100%">
|
|
|
- <el-option v-for="item in ldList" :key="item._id" :label="item.name" :value="item._id" />
|
|
|
+ <el-option v-for="item in ldList" :key="item" :label="item.name" :value="item._id" />
|
|
|
</el-select>
|
|
|
</template>
|
|
|
<template #accounting>
|
|
|
<el-select v-model="form.accounting" multiple placeholder="请选择审批会计" style="width: 100%">
|
|
|
- <el-option v-for="item in kjList" :key="item._id" :label="item.name" :value="item._id" />
|
|
|
+ <el-option v-for="item in kjList" :key="item" :label="item.name" :value="item._id" />
|
|
|
</el-select>
|
|
|
</template>
|
|
|
</cForm>
|
|
@@ -67,8 +78,8 @@ let skip = 0;
|
|
|
let limit: number = proxy.$limit;
|
|
|
let fields: Ref<any[]> = ref([
|
|
|
{ label: '街道/社区', model: 'office', format: (i: any) => getDict(i, 'office') },
|
|
|
- { label: '领导', model: 'leader' },
|
|
|
- { label: '会计', model: 'accounting' },
|
|
|
+ { label: '领导', model: 'leader', custom: true },
|
|
|
+ { label: '会计', model: 'accounting', custom: true },
|
|
|
{ label: '是否使用', model: 'is_use', format: (i: any) => getDict(i, 'is_use') }
|
|
|
]);
|
|
|
// 操作
|
|
@@ -87,11 +98,9 @@ let formFields: Ref<any[]> = ref([
|
|
|
{ label: '是否使用', model: 'is_use', type: 'radio' }
|
|
|
]);
|
|
|
const rules = reactive<FormRules>({
|
|
|
- name: [{ required: true, message: '名称', trigger: 'blur' }],
|
|
|
- route: [{ required: true, message: '路由', trigger: 'blur' }],
|
|
|
- url: [{ required: true, message: '图片', trigger: 'blur' }],
|
|
|
- type: [{ required: true, message: '类型', trigger: 'blur' }],
|
|
|
- sort: [{ required: true, message: '排序', trigger: 'blur' }]
|
|
|
+ office: [{ required: true, message: '街道/社区', trigger: 'blur' }],
|
|
|
+ leader: [{ required: true, message: '领导', trigger: 'blur' }],
|
|
|
+ accounting: [{ required: true, message: '会计', trigger: 'blur' }]
|
|
|
});
|
|
|
// 查询数据
|
|
|
let searchForm: Ref<any> = ref({});
|
|
@@ -125,6 +134,8 @@ const toSearch = (query: any) => {
|
|
|
const toChange = async (val: any) => {
|
|
|
let res: IQueryResult;
|
|
|
let info: any = { status: '1' };
|
|
|
+ form.value.leader = [];
|
|
|
+ form.value.accounting = [];
|
|
|
if (val.type == '0') info.street = val._id;
|
|
|
else if (val.type == '1') info.community = val._id;
|
|
|
// 领导
|
|
@@ -141,7 +152,29 @@ const getDict = (value: any, model: any) => {
|
|
|
if (data) return data.label;
|
|
|
else return '暂无';
|
|
|
}
|
|
|
+ } else if (model == 'office') {
|
|
|
+ if (value) {
|
|
|
+ let data = officeList.value.find((i: any) => i._id == value);
|
|
|
+ if (data) return data.name;
|
|
|
+ else return '暂无';
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+const getProps = (data: any, prop: any) => {
|
|
|
+ let list = [];
|
|
|
+ let res;
|
|
|
+ if (prop == 'leader') {
|
|
|
+ for (const val of data[prop]) {
|
|
|
+ res = ldList.value.find((i) => i._id == val);
|
|
|
+ if (res) list.push(res.name);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (const val of data[prop]) {
|
|
|
+ res = kjList.value.find((i) => i._id == val);
|
|
|
+ if (res) list.push(res.name);
|
|
|
+ }
|
|
|
}
|
|
|
+ return list.toString();
|
|
|
};
|
|
|
// 新增
|
|
|
const toAdd = () => {
|
|
@@ -150,6 +183,7 @@ const toAdd = () => {
|
|
|
// 修改
|
|
|
const toEdit = async (data: any) => {
|
|
|
form.value = data;
|
|
|
+ toChange(data.office);
|
|
|
dialog.value = { title: '信息管理', show: true, type: '1' };
|
|
|
};
|
|
|
// 提交保存
|
|
@@ -160,7 +194,7 @@ const toSave = async (data: any) => {
|
|
|
if (res.errcode == 0) {
|
|
|
ElMessage({ type: `success`, message: `维护信息成功` });
|
|
|
toClose();
|
|
|
- }
|
|
|
+ } else ElMessage({ type: `warning`, message: `${res.errmsg}` });
|
|
|
};
|
|
|
// 删除
|
|
|
const toDel = async (data: any) => {
|
|
@@ -182,9 +216,15 @@ const searchOther = async () => {
|
|
|
// 是否使用
|
|
|
res = await dictData.query({ type: 'is_use' });
|
|
|
if (res.errcode == '0') is_useList.value = res.data;
|
|
|
- // 街道
|
|
|
+ // 街道/社区
|
|
|
res = await officeAxios.query({ is_use: '0' });
|
|
|
if (res.errcode == '0') officeList.value = res.data;
|
|
|
+ // 领导
|
|
|
+ res = await userAxios.query({ role: 'ld', status: '1' });
|
|
|
+ if (res.errcode == '0') ldList.value = res.data;
|
|
|
+ // 会计
|
|
|
+ res = await userAxios.query({ role: 'kj', status: '1' });
|
|
|
+ if (res.errcode == '0') kjList.value = res.data;
|
|
|
};
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
@@ -194,4 +234,3 @@ const searchOther = async () => {
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
-@/stores/collection/collection
|