zs hai 1 ano
pai
achega
960af25a05
Modificáronse 2 ficheiros con 55 adicións e 14 borrados
  1. 2 0
      src/views/system/buy/index.vue
  2. 53 14
      src/views/system/money/index.vue

+ 2 - 0
src/views/system/buy/index.vue

@@ -134,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;
   // 领导

+ 53 - 14
src/views/system/money/index.vue

@@ -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