Ver código fonte

0818xx标签管理

XiaXxxxxx 2 anos atrás
pai
commit
fc373b9f26

+ 89 - 6
src/api/sys/tag.ts

@@ -1,18 +1,101 @@
 import { defHttp } from '/@/utils/http/axios';
 
 enum Api {
-    CallProvider = '/callProvider',
+    GetAll = '/tags/TagsProvider/getAll',
+    CheckTag = '/tags/TagsProvider/checkTag',
+    GetType = '/tags/TagsProvider/getType',
+    Insert = '/tags/TagsProvider/insert',
+    Update = '/tags/TagsProvider/update',
+    Delete = '/tags/TagsProvider/delete',
+    GenerateCode = '/tags/TagsProvider/generateCode'
 }
 const locationType = { apiUrl2: true };
 
 /**
- * @description: 关于标签的所有操作都在这个接口,根据参数不同做不同处理
+ * @description: 获取所有标签
+ * @param: 1:用户登录tokenV2
  */
-export const callProvider = (params:any) => {
-    const formData = new FormData();
-    Object.keys(params).forEach((key) => formData.append(key, params[key]))
+export const getAllTags = (params: any) => {
     return new Promise<void>((resolve) => {
-        defHttp.post({...locationType, url: Api.CallProvider, params: formData }).then((res) => {
+        defHttp.post({ ...locationType, url: Api.GetAll, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 检查标签编码是否重复
+ * @param: 1:用户登录tokenV2
+ * @param: 2:标签编码code
+ */
+export const checkTagCode = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.CheckTag, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 获取所有标签类型
+ * @param: 1:用户登录tokenV2
+ */
+export const getAllTagsType = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.GetType, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 新增标签
+ * @param: 1:用户登录tokenV2
+ * @param: 2:标签信息对象数组
+ */
+export const addTag = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.Insert, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 修改标签
+ * @param: 1:用户登录tokenV2
+ * @param: 2:标签信息对象数组
+ */
+export const updateTag = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.Update, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 删除标签
+ * @param: 1:用户登录tokenV2
+ * @param: 2:标签信息对象数组
+ * @param: 3:id数组
+ */
+export const deleteTag = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.Delete, params: params }, { joinParamsToUrl: true }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 根据名称生成code
+ * @param: 1:用户登录tokenV2
+ * @param: 2:name
+ */
+export const generateCodeByName = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ ...locationType, url: Api.GenerateCode, params: params }, { joinParamsToUrl: true }).then((res) => {
             resolve(res)
         })
     })

+ 1 - 0
src/utils/http/axios/index.ts

@@ -80,6 +80,7 @@ const transform: AxiosTransform = {
             config.url as string,
             Object.assign({}, config.params, config.data)
           );
+          config.data = undefined;
         }
       } else {
         // 兼容restful风格

+ 83 - 31
src/views/systemAdmin/system/tag/TagDrawer.vue

@@ -1,18 +1,23 @@
 <template>
-    <a-drawer :title="title" :width="540" :visible="open" :body-style="{ paddingBottom: '80px' }"
+    <a-drawer :title="title" :visible="true" :width="540" :body-style="{ paddingBottom: '80px' }"
         :footer-style="{ textAlign: 'right' }" @close="onClose">
         <a-form ref="formRef" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol">
             <!-- 名称 -->
-            <a-form-item label="岗位名称" name="name">
+            <a-form-item label="标签名称" name="name">
                 <a-input v-model:value="form.name" style="width: 100%" placeholder="请输入名称" />
             </a-form-item>
-            <!-- 职责 -->
-            <a-form-item label="岗位职责" name="duty">
-                <a-input v-model:value="form.duty" style="width: 100%" placeholder="请输入职责" />
+            <!-- 编码 -->
+            <a-form-item label="标签编码" name="code">
+                <a-input v-model:value="form.code" style="width: 100%" placeholder="请输入编码" />
+            </a-form-item>
+            <!-- 类型 -->
+            <a-form-item label="标签类型" name="type">
+                <a-select v-model:value="form.type" style="width: 100%" :options="selectOptions">
+                </a-select>
             </a-form-item>
             <!-- 排序 -->
-            <a-form-item label="排序" name="sort">
-                <a-input v-model:value="form.sort" style="width: 100%" placeholder="请输入序号" />
+            <a-form-item label="标签排序" name="px">
+                <a-input v-model:value="form.px" style="width: 100%" placeholder="请输入序号" />
             </a-form-item>
         </a-form>
         <div :style="{
@@ -34,8 +39,8 @@
 <script>
 import { defineComponent, reactive, ref, onMounted, watch } from 'vue';
 import { message } from 'ant-design-vue';
-import { v4 as uuidv4 } from 'uuid';
-import { savePosition } from '/@/api/sys/position';
+import { getAllTagsType, generateCodeByName, addTag, updateTag, checkTagCode } from '/@/api/sys/tag';
+import { session } from '/@/utils/Memory';
 
 const props = {
     formData: {
@@ -76,23 +81,25 @@ export default defineComponent({
                 message: '请选择标签类型',
                 trigger: 'blur'
             }],
-            type: [{
+            px: [{
                 required: true,
                 message: '请输入标签排序',
                 trigger: 'blur'
             }]
         };
         const title = ref(props.drawerTitle)
-        const open = ref(false);
         const formRef = ref()
+        const selectOptions = ref([])
 
         onMounted(() => {
             if (Object.keys(props.formData).length) {
                 for (let key in form) {
                     form[key] = props.formData[key]
                 }
-            }
+            };
+            getTagsType();
         })
+
         watch(
             () => [props.formData, props.drawerTitle],
             ([newF, newD]) => {
@@ -106,34 +113,80 @@ export default defineComponent({
                 deep: true
             }
         )
-        const showDrawer = () => {
-            open.value = true;
-        };
+        //获取所有标签类型
+        const getTagsType = () => {
+            let param = {
+                1: session.getItem('tokenV2')
+            }
+            getAllTagsType(param).then(res => {
+                let resData = JSON.parse(res.result)
+                resData.forEach((item, index) => {
+                    selectOptions.value.push({
+                        value: item.TYPE,
+                        label: item.TYPE
+                    })
+                })
+            })
+        }
+        // 关闭弹窗
         const onClose = () => {
-            open.value = false;
+            emit('closeDialog')
             resetForm()
         };
+        // 提交信息
         const onSubmit = () => {
             formRef.value.validate().then(() => {
                 //此处调用新增
-                if (title.value === '新增岗位') {
-                    form.id = uuidv4()
-                }
-                form.sort = parseInt(form.sort)
-                savePosition(form).then(res => {
-                    if (res.datas === 1) {
-                        message.success('操作成功')
-                        emit('onSubmit', true)
-                    } else {
-                        message.error('操作失败')
-                        emit('onSubmit', false)
+                if (title.value === '新增标签') {
+                    // let param1 = {
+                    //     1: session.getItem('tokenV2'),
+                    //     2: form.name
+                    // }
+                    // generateCodeByName(param1).then(res1=>{
+
+                    // })
+                    let param2 = {
+                        1: session.getItem('tokenV2'),
+                        2: form.code
                     }
-                    onClose()
-                })
+                    checkTagCode(param2).then(res2 => {
+                        if (res2.result === 'true') {
+                            let addJson = []
+                            Object.keys(form).forEach(v => {
+                                let o = {};
+                                o[v] = form[v];
+                                addJson.push(o)
+                            })
+                            let param3 = {
+                                1: session.getItem('tokenV2'),
+                                2: JSON.stringify([form])
+                            }
+                            addTag(param3).then(res3 => {
+                                console.log(res3);
+                            })
+                        } else {
+                            message.error('code重复')
+                        }
+                    })
+                } else {
+
+                }
+                // form.sort = parseInt(form.sort)
+                // savePosition(form).then(res => {
+                //     if (res.datas === 1) {
+                //         message.success('操作成功')
+                //         emit('onSubmit', true)
+                //     } else {
+                //         message.error('操作失败')
+                //         emit('onSubmit', false)
+                //     }
+                //     onClose()
+                // })
             }).catch((error) => {
                 console.log('error', error);
             });
         };
+        // 重置表单
         const resetForm = () => {
             formRef.value.resetFields();
         };
@@ -141,11 +194,10 @@ export default defineComponent({
             form,
             rules,
             title,
-            open,
             formRef,
             labelCol: { span: 6 },
             wrapperCol: { span: 18 },
-            showDrawer,
+            selectOptions,
             onClose,
             onSubmit,
             resetForm

+ 25 - 23
src/views/systemAdmin/system/tag/index.vue

@@ -42,7 +42,7 @@
                 </a-table>
             </div>
         </div>
-        <TagDrawer :formData="formData" :drawerTitle="drawerTitle" @onSubmit="onSubmit" ref="drawerRef">
+        <TagDrawer v-if="ifShowDialog" @closeDialog="ifShowDialog = false" :formData="formData" :drawerTitle="drawerTitle" @onSubmit="onSubmit" ref="drawerRef">
         </TagDrawer>
     </div>
 </template>
@@ -50,7 +50,7 @@
 <script>
 import { defineComponent, reactive, ref, toRefs, computed, onMounted, watch } from 'vue';
 import TagDrawer from './TagDrawer.vue';
-import { callProvider } from '/@/api/sys/tag';
+import { getAllTags } from '/@/api/sys/tag';
 import { message } from 'ant-design-vue';
 import { EditOutlined, DeleteOutlined } from '@ant-design/icons-vue';
 import moment from 'moment'
@@ -62,24 +62,7 @@ export default defineComponent({
     setup() {
         const drawerRef = ref(null)
         onMounted(() => {
-            let params = {
-                'interfaceName': 'antu.space.provider.tags.TagsProvider',
-                'methodName': 'getAll',
-                'args[]': session.getItem('tokenV2')
-            }
-            callProvider(params).then(res => {
-                console.log(res);
-            })
-            for (let i = 0; i < 40; i++) {
-                data.tableData.push({
-                    key: i,
-                    name: `标签${i}`,
-                    code: `编码${i}`,
-                    type: `类型${i}`,
-                    state: `状态${i}`,
-                    time: `时间${i}`
-                })
-            }
+            getTagsData();
         });
         const data = reactive({
             tableData: [],//表格数据
@@ -92,9 +75,26 @@ export default defineComponent({
                 type: "",
                 px: "",
             },
-            drawerTitle: "新增标签"
+            drawerTitle: "新增标签",
+            ifShowDialog: false
         });
-
+        //获取所有标签
+        const getTagsData = () => {
+            let param = {
+                1:session.getItem('tokenV2')
+            }
+            getAllTags(param).then(res => {
+                let resData = JSON.parse(res.result)
+                resData.forEach((item,index) => {
+                    data.tableData.push({
+                        key: item.id,
+                        state:`状态${index+1}`,
+                        time: moment(item.createtime).format('YYYY-MM-DD HH:mm:ss'),
+                        ...item
+                    })
+                })
+            })
+        }
         //排序与删选数据,用于表格
         const filteredInfo = ref({
             name: null,
@@ -197,7 +197,8 @@ export default defineComponent({
                     px: "",
                 }
                 data.drawerTitle = '新增标签'
-                drawerRef.value.showDrawer()
+                data.ifShowDialog = true
+                // drawerRef.value.showDrawer()
             }
         }
         //弹窗确认
@@ -223,6 +224,7 @@ export default defineComponent({
             hasSelected,
             ...toRefs(data),
             // func
+            getTagsData,
             tableChange,
             searchTable,
             delAllData,