Преглед на файлове

广告账户管理增加审核流程

sjl преди 1 месец
родител
ревизия
b4e7ab05cd

+ 10 - 3
src/views/demo/adsaccount/AdsAccount.api.ts

@@ -7,6 +7,7 @@ enum Api {
   list = '/adsaccount/adsAccount/list',
   save='/adsaccount/adsAccount/add',
   edit='/adsaccount/adsAccount/edit',
+  audit = '/adsaccount/adsAccount/audit',
   deleteOne = '/adsaccount/adsAccount/delete',
   deleteBatch = '/adsaccount/adsAccount/deleteBatch',
   importExcel = '/adsaccount/adsAccount/importExcel',
@@ -58,7 +59,13 @@ export const batchDelete = (params, handleSuccess) => {
  * 保存或者更新
  * @param params
  */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
+export const saveOrUpdate = (params, isUpdate, isAudit) => {
+  let url = Api.save;
+  if (isAudit) {
+    url = Api.audit;
+  } else if (isUpdate) {
+    url = Api.edit;
+  }
+
+  return defHttp.post({ url: url, params });
 }

+ 23 - 0
src/views/demo/adsaccount/AdsAccount.data.ts

@@ -93,6 +93,7 @@ export const formSchema: FormSchema[] = [
     label: '关联用户ID',
     field: 'userId',
     component: 'JSearchSelect',
+    show: true,
     componentProps:{
        dict:"user_login,username,id"
     },
@@ -106,6 +107,7 @@ export const formSchema: FormSchema[] = [
     label: '账号',
     field: 'accountId',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入账号!'},
@@ -116,6 +118,7 @@ export const formSchema: FormSchema[] = [
     label: '账号名',
     field: 'accountName',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入账号名!'},
@@ -126,6 +129,7 @@ export const formSchema: FormSchema[] = [
     label: '账号渠道',
     field: 'accountChannel',
     component: 'JDictSelectTag',
+    show: true,
     componentProps:{
         dictCode:"account_channel"
      },
@@ -139,6 +143,7 @@ export const formSchema: FormSchema[] = [
     label: '账号分类',
     field: 'accountCategory',
     component: 'JDictSelectTag',
+    show: true,
     componentProps:{
         dictCode:"account_category"
      },
@@ -152,6 +157,7 @@ export const formSchema: FormSchema[] = [
     label: '账号状态',
     field: 'accountStatus',
     component: 'JDictSelectTag',
+    show: true,
     componentProps:{
         dictCode:"account_status"
      },
@@ -165,6 +171,7 @@ export const formSchema: FormSchema[] = [
     label: '检查状态',
     field: 'reviewStatus',
     component: 'JDictSelectTag',
+    show: true,
     componentProps:{
         dictCode:"review_status"
      },
@@ -178,6 +185,7 @@ export const formSchema: FormSchema[] = [
     label: '币种',
     field: 'currencyCode',
     component: 'JDictSelectTag',
+    show: true,
     componentProps:{
         dictCode:"currency_code"
      },
@@ -191,6 +199,7 @@ export const formSchema: FormSchema[] = [
     label: '公司',
     field: 'company',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入公司!'},
@@ -201,6 +210,7 @@ export const formSchema: FormSchema[] = [
     label: '网址',
     field: 'website',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入网址!'},
@@ -211,6 +221,7 @@ export const formSchema: FormSchema[] = [
     label: '领域',
     field: 'industry',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入领域!'},
@@ -221,12 +232,24 @@ export const formSchema: FormSchema[] = [
     label: '邮箱',
     field: 'email',
     component: 'Input',
+    show: true,
     dynamicRules: ({model,schema}) => {
           return [
                  { required: true, message: '请输入邮箱!'},
           ];
      },
   },
+  {
+    label: '备注',
+    field: 'remark',
+    component: 'Input',
+    show: true,
+    dynamicRules: ({model,schema}) => {
+      return [
+        { required: false, message: '请输入备注!'},
+      ];
+    },
+  },
 	// TODO 主键隐藏字段,目前写死为ID
 	{
 	  label: '',

+ 16 - 0
src/views/demo/adsaccount/AdsAccountList.vue

@@ -108,6 +108,7 @@
      openModal(true, {
        isUpdate: false,
        showFooter: true,
+       isAudit: false,
      });
   }
    /**
@@ -130,6 +131,18 @@
        showFooter: false,
      });
    }
+
+  /**
+   * 审核
+   */
+  function handleAudit(record: Recordable) {
+    openModal(true, {
+      record,
+      isUpdate: true,
+      showFooter: true,
+      isAudit: true,
+    });
+  }
    /**
     * 删除事件
     */
@@ -168,6 +181,9 @@
            label: '详情',
            onClick: handleDetail.bind(null, record),
          }, {
+           label: '审核',
+           onClick: handleAudit.bind(null, record),
+         }, {
            label: '删除',
            popConfirm: {
              title: '是否确认删除',

+ 21 - 9
src/views/demo/adsaccount/components/AdsAccountModal.vue

@@ -14,6 +14,7 @@
     const emit = defineEmits(['register','success']);
     const isUpdate = ref(true);
     const isDetail = ref(false);
+    const isAudit = ref(false);
     //表单配置
     const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
         //labelWidth: 150,
@@ -28,24 +29,35 @@
         setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
         isUpdate.value = !!data?.isUpdate;
         isDetail.value = !!data?.showFooter;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-        // 隐藏底部时禁用整个表单
+      isAudit.value = !!data?.isAudit;
+      // 赋值所有字段
+      await setFieldsValue({
+        ...data.record,
+      });
+
+      if (unref(isAudit)) {
+        const limitedFields = ['reviewStatus', 'remark', 'accountName'];
+        const updatedSchema = formSchema.map(field => ({
+          ...field,
+          show: limitedFields.includes(field.field),
+          dynamicDisabled: field.field === 'accountName',
+        }));
+        setProps({ schemas: updatedSchema });
+      } else {
+        setProps({ schemas: formSchema });
+      }
        setProps({ disabled: !data?.showFooter })
     });
     //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : !unref(isDetail) ? '详情' : '编辑'));
+    const title = computed(() => unref(isAudit) ? '审核' : (!unref(isUpdate) ? '新增' : (!unref(isDetail) ? '详情' : '编辑')));
     //表单提交事件
     async function handleSubmit(v) {
         try {
             let values = await validate();
             setModalProps({confirmLoading: true});
+
             //提交表单
-            await saveOrUpdate(values, isUpdate.value);
+            await saveOrUpdate(values, isUpdate.value, isAudit.value);
             //关闭弹窗
             closeModal();
             //刷新列表