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