Browse Source

feat:常用意见管理对接;

zhangchong 1 year ago
parent
commit
9343a845b9

+ 33 - 0
src/api/system/commonAdvice.ts

@@ -39,4 +39,37 @@ export const deleteCommon = (data: object) => {
 		method: 'post',
 		data,
 	});
+};
+/**
+ * @description 常用意见基础信息
+ * @param {object} params
+ */
+export const commonBaseData = (params?: object) => {
+	return request({
+		url: `/api/v1/Sys/common-basepage`,
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 公开常用意见列表
+ * @param {object} params
+ */
+export const publicCommonList = (params: object) => {
+	return request({
+		url: `/api/v1/Sys/open-common`,
+		method: 'get',
+		params,
+	});
+};
+/**
+ * @description 修改公共常用意见
+ * @param {object} data
+ */
+export const commonUpdate = (data: object) => {
+	return request({
+		url: `/api/v1/Sys/common-modify`,
+		method: 'post',
+		data,
+	});
 };

+ 308 - 279
src/components/CommonAdvice/index.vue

@@ -1,342 +1,371 @@
 <template>
-  <div class="textarea w100">
-    <el-input v-model="value" type="textarea" show-word-limit :autosize="{ minRows: props.minRows, maxRows: props.maxRows }" :placeholder="placeholder" :maxlength="props.maxlength" :disabled="props.disabled"> </el-input>
-    <span class="buttons">
+	<div class="textarea w100">
+		<el-input
+			v-model="value"
+			type="textarea"
+			show-word-limit
+			:autosize="{ minRows: props.minRows, maxRows: props.maxRows }"
+			:placeholder="placeholder"
+			:maxlength="props.maxlength"
+			:disabled="props.disabled"
+		>
+		</el-input>
+		<span class="buttons">
 			<el-button @click="showAdvice" class="default-button" :loading="loading" :disabled="props.disabled">常用意见</el-button>
 			<el-button type="primary" @click="onAddAdvice" :loading="loading" :disabled="props.disabled">添加到常用意见</el-button>
 		</span>
-    <el-drawer v-model="state.showDrawer" :size="props.drawerWidth" title="" :show-close="false" :modal="modal">
-      <template #header="{ close }">
-        <div class="comments-header">
-          <div>
-            <el-button link @click="state.active = 'default'" :class="{ active: state.active === 'default' }"> 常用意见 </el-button>
-            <el-button link @click="state.active = 'add'" :class="{ active: state.active === 'add' }"> 新增意见 </el-button>
-            <span></span>
-          </div>
-        </div>
-        <div class="flex-center-align">
-          <el-button link @click="state.manage = true" v-if="!state.manage && state.active === 'default' && state.adviceList.length"
-          >管理</el-button
-          >
-          <el-button link @click="state.manage = false" type="primary" v-if="state.manage && state.active === 'default'">返回</el-button>
-          <el-button link @click="close">
-            <SvgIcon name="ele-Close" class="mr5" @click="close" size="16px" />
-          </el-button>
-        </div>
-      </template>
-      <div class="comments-container" v-loading="state.loading">
-        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
-          <el-tab-pane label="个人" name="personal"></el-tab-pane>
-          <el-tab-pane label="部门" name="department"></el-tab-pane>
-        </el-tabs>
-        <template v-if="state.adviceList.length">
-          <!-- 默认状态 -->
-          <template v-if="state.active === 'default' && !state.manage">
-            <ul class="comments-box">
-              <li class="comments-item" v-for="(item, index) in state.adviceList" :key="index" @click="chooseAdvice(item)">
-                <p class="text-ellipsis2" :title="item.content">{{ item.content }}</p>
-              </li>
-            </ul>
-          </template>
-          <!-- 管理 -->
-          <template v-if="state.active === 'default' && state.manage">
-            <ul class="comments-box">
-              <li
-                  class="comments-item"
-                  v-for="(item, index) in state.adviceList"
-                  :class="[item.ischeck === true ? 'chose' : '']"
-                  :key="index"
-                  @click="handleAdvice(item, <number>index)"
-              >
-                <p class="text-ellipsis2" :title="item.content">{{ item.content }}</p>
-                <el-checkbox v-model="item.ischeck" class="check-icon" label="" v-if="item.ischeck" size="large" />
-              </li>
-            </ul>
-          </template>
-        </template>
-        <template v-if="!state.adviceList.length && state.active !== 'add'">
-          <Empty description="暂无常用语" />
-        </template>
-        <!-- 新增意见 -->
-        <template v-if="state.active === 'add'">
-          <div>
-            <el-form :model="state.adviceForm" ref="adviceFormRef">
-              <el-form-item label="" prop="content" :rules="[{ required: true, message: '请填写新增常用意见', trigger: 'blur' }]">
-                <el-input
-                    v-model="state.adviceForm.content"
-                    type="textarea"
-                    :autosize="{ minRows: 10, maxRows: 10 }"
-                    placeholder="请填写新增常用意见"
-                    clearable
-                >
-                </el-input>
-              </el-form-item>
-            </el-form>
-          </div>
-        </template>
-      </div>
-      <template #footer v-if="state.active === 'add' || state.manage">
-        <div style="flex: auto">
-          <el-button @click="deleteAdvice" class="default-button" :disabled="!state.chooseAdvice.length" v-if="state.active === 'default' && state.manage">删 除</el-button>
-          <el-button type="primary" @click="adviceSave(adviceFormRef)" v-if="state.active === 'add'">保 存</el-button>
-        </div>
-      </template>
-    </el-drawer>
-  </div>
+		<el-drawer v-model="state.showDrawer" :size="props.drawerWidth" title="" :show-close="false" :modal="modal">
+			<template #header="{ close }">
+				<div class="comments-header">
+					<div>
+						<el-button link @click="state.active = 'default'" :class="{ active: state.active === 'default' }"> 常用意见 </el-button>
+						<el-button link @click="state.active = 'add'" :class="{ active: state.active === 'add' }"> 新增个人意见 </el-button>
+						<span></span>
+					</div>
+				</div>
+				<div class="flex-center-align">
+					<el-button
+						link
+						@click="state.manage = true"
+						v-if="!state.manage && state.active === 'default' && state.adviceList.length && activeName === 'personal'"
+						>管理个人常用意见</el-button
+					>
+					<el-button
+						link
+						@click="state.manage = false"
+						type="primary"
+						v-if="state.manage && state.active === 'default' && state.adviceList.length && activeName === 'personal'"
+						>返回</el-button
+					>
+					<el-button link @click="close">
+						<SvgIcon name="ele-Close" class="mr5" @click="close" size="16px" />
+					</el-button>
+				</div>
+			</template>
+			<div class="comments-container" v-loading="state.loading">
+				<el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick" v-if="state.active === 'default'">
+					<el-tab-pane label="个人常用语" name="personal"></el-tab-pane>
+					<el-tab-pane label="公共常用语" name="public"></el-tab-pane>
+				</el-tabs>
+				<template v-if="state.adviceList.length">
+					<!-- 默认状态 -->
+					<template v-if="state.active === 'default' && !state.manage">
+						<ul class="comments-box">
+							<li class="comments-item" v-for="(item, index) in state.adviceList" :key="index" @click="chooseAdvice(item)">
+								<p class="text-ellipsis2" :title="item.content">{{ item.content }}</p>
+							</li>
+						</ul>
+					</template>
+					<!-- 管理 -->
+					<template v-if="state.active === 'default' && state.manage">
+						<ul class="comments-box">
+							<li
+								class="comments-item"
+								v-for="(item, index) in state.adviceList"
+								:class="[item.ischeck === true ? 'chose' : '']"
+								:key="index"
+								@click="handleAdvice(item, <number>index)"
+							>
+								<p class="text-ellipsis2" :title="item.content">{{ item.content }}</p>
+								<el-checkbox v-model="item.ischeck" class="check-icon" label="" v-if="item.ischeck" size="large" />
+							</li>
+						</ul>
+					</template>
+				</template>
+				<template v-if="!state.adviceList.length && state.active !== 'add'">
+					<Empty description="暂无常用语" />
+				</template>
+				<!-- 新增意见 -->
+				<template v-if="state.active === 'add'">
+					<div>
+						<el-form :model="state.adviceForm" ref="adviceFormRef">
+							<el-form-item label="" prop="content" :rules="[{ required: true, message: '请填写新增常用意见', trigger: 'blur' }]">
+								<el-input
+									v-model="state.adviceForm.content"
+									type="textarea"
+									:autosize="{ minRows: 10, maxRows: 10 }"
+									placeholder="请填写新增常用意见"
+									clearable
+								>
+								</el-input>
+							</el-form-item>
+						</el-form>
+					</div>
+				</template>
+			</div>
+			<template #footer v-if="state.active === 'add' || state.manage">
+				<div style="flex: auto">
+					<el-button
+						@click="deleteAdvice"
+						class="default-button"
+						:disabled="!state.chooseAdvice.length"
+						v-if="state.active === 'default' && state.manage"
+						>删 除</el-button
+					>
+					<el-button type="primary" @click="adviceSave(adviceFormRef)" v-if="state.active === 'add'">保 存</el-button>
+				</div>
+			</template>
+		</el-drawer>
+	</div>
 </template>
 
 <script setup lang="ts" name="commonAdvice">
 import { reactive, ref, computed } from 'vue';
-import {ElMessage, ElMessageBox, FormInstance} from 'element-plus';
+import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { commonList, addCommon, deleteCommon } from '/@/api/system/commonAdvice';
 import { commonEnum } from '/@/utils/constants';
 const emit = defineEmits(['chooseAdvice', 'update:modelValue']);
 const props = defineProps({
-  modal: {
-    type: Boolean,
-    default: false,
-  },
-  modelValue: {
-    type: String,
-    default: '',
-  },
-  disabled: {
-    type: Boolean,
-    default: false,
-  },
-  placeholder: {
-    type: String,
-    default: '请填写内容',
-  },
-  loading: {
-    type: Boolean,
-    default: false,
-  },
-  commonEnum: {
-    type: String,
-    default: commonEnum.Seat,
-  },
-  minRows:{
-    type: [Number , String , undefined],
-    default: 6,
-  },
-  maxRows:{
-    type: [Number , String , undefined],
-    default: 20,
-  },
-  maxlength:{
-    type: [Number , String , undefined],
-    default: 2000,
-  },
-  drawerWidth:{
-    type: [Number , String],
-    default: '35%',
-  },
+	modal: {
+		type: Boolean,
+		default: false,
+	},
+	modelValue: {
+		type: String,
+		default: '',
+	},
+	disabled: {
+		type: Boolean,
+		default: false,
+	},
+	placeholder: {
+		type: String,
+		default: '请填写内容',
+	},
+	loading: {
+		type: Boolean,
+		default: false,
+	},
+	commonEnum: {
+		type: [String, Number],
+		default: commonEnum['Seat'],
+	},
+	minRows: {
+		type: [Number, String, undefined],
+		default: 6,
+	},
+	maxRows: {
+		type: [Number, String, undefined],
+		default: 20,
+	},
+	maxlength: {
+		type: [Number, String, undefined],
+		default: 2000,
+	},
+	drawerWidth: {
+		type: [Number, String],
+		default: '35%',
+	},
 });
-const activeName = ref('personal');// 默认选中tab
+const activeName = ref('personal'); // 默认选中tab
 const value = computed({
-  get() {
-    return props.modelValue;
-  },
-  set(value) {
-    emit('update:modelValue', value);
-  },
+	get() {
+		return props.modelValue;
+	},
+	set(value) {
+		emit('update:modelValue', value);
+	},
 });
 // 定义变量内容
 const state = reactive<any>({
-  showDrawer: false,  // 是否显示弹窗
-  adviceList: [], // 常用意见列表
-  adviceForm: { // 新增常用意见
-    content: '',
-  },
-  chooseAdvice: [],  // 选中的常用意见
-  active: 'default',  // 当前状态
-  manage: false,  // 是否是管理状态
-  loading: false, // 是否显示loading
-  typecode: '', // 类型
+	showDrawer: false, // 是否显示弹窗
+	adviceList: [], // 常用意见列表
+	adviceForm: {
+		// 新增常用意见
+		content: '',
+	},
+	chooseAdvice: [], // 选中的常用意见
+	active: 'default', // 当前状态
+	manage: false, // 是否是管理状态
+	loading: false, // 是否显示loading
+	commonType: '', // 类型
 });
 
 // 打开常用意见管理
 const showAdvice = () => {
-  openDialog();
+	openDialog();
 };
 // 添加到常用意见
 const onAddAdvice = async () => {
-  if (!props.modelValue) {
-    ElMessage.warning(props.placeholder);
-    return;
-  }
-  ElMessageBox.confirm(`确认要添加到常用意见?`, '提示', {
-    confirmButtonText: '确认',
-    cancelButtonText: '取消',
-    type: 'warning',
-    draggable: true,
-    cancelButtonClass: 'default-button',
-    autofocus: false,
-  }).then(async () => {
-    await addCommon({
-      typeCode: props.commonEnum,
-      content: props.modelValue,
-    });
-    ElMessage.success('操作成功');
-    closeDialog();
-  }).catch(() => {});
+	if (!props.modelValue) {
+		ElMessage.warning(props.placeholder);
+		return;
+	}
+	ElMessageBox.confirm(`确认要添加到常用意见?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		autofocus: false,
+	})
+		.then(async () => {
+			await addCommon({
+				commonType: props.commonEnum,
+				isOpen: false, // 个人意见
+				content: props.modelValue,
+			});
+			ElMessage.success('操作成功');
+			closeDialog();
+		})
+		.catch(() => {});
 };
 // 打开弹窗
 const adviceFormRef = ref<RefType>();
 const openDialog = async () => {
-  state.typecode = props.commonEnum;
-  state.active = 'default';
-  adviceFormRef.value?.resetFields();
-  state.manage = false;
-  await getList();
-  state.showDrawer = true;
+	state.commonType = props.commonEnum;
+	state.active = 'default';
+	adviceFormRef.value?.resetFields();
+	state.manage = false;
+	await getList();
+	state.showDrawer = true;
 };
+const isOpen = ref<boolean>(false);
 const getList = async () => {
-  try {
-    state.loading = true;
-    const res: any = await commonList({ typecode: props.commonEnum });
-    state.adviceList = res.result;
-    state.loading = false;
-  } catch (error) {
-    state.loading = false;
-  }
+	try {
+		state.loading = true;
+		const res: any = await commonList({ commonType: props.commonEnum, isOpen: isOpen.value });
+		state.adviceList = res.result;
+		state.loading = false;
+	} catch (error) {
+		state.loading = false;
+	}
 };
+
 // 切换tab查询意见
-const handleClick = ()=>{
-  getList();
-}
+const handleClick = (val: string) => {
+	isOpen.value = val === 'public';
+	getList();
+};
 // 选中常用意见(管理)
-const handleAdvice= (item: any, index: number) => {
-  const repeatData = [...state.adviceList];
-  const repeatSolar = [...state.chooseAdvice];
-  if (!repeatData[index].ischeck) {
-    repeatData[index].ischeck = true;
-    repeatSolar.push(item);
-  } else {
-    repeatData[index].ischeck = false;
-    if (!repeatSolar || repeatSolar.length == 0) {
-      return '';
-    }
-    repeatSolar.splice(index, 1);
-  }
-  state.chooseAdvice = repeatSolar.filter((item: any) => item.ischeck);
+const handleAdvice = (item: any, index: number) => {
+	const repeatData = [...state.adviceList];
+	const repeatSolar = [...state.chooseAdvice];
+	if (!repeatData[index].ischeck) {
+		repeatData[index].ischeck = true;
+		repeatSolar.push(item);
+	} else {
+		repeatData[index].ischeck = false;
+		if (!repeatSolar || repeatSolar.length == 0) {
+			return '';
+		}
+		repeatSolar.splice(index, 1);
+	}
+	state.chooseAdvice = repeatSolar.filter((item: any) => item.ischeck);
 };
 // 重置状态
 const resetState = () => {
-  state.active = 'default';
-  state.manage = false;
-  state.chooseAdvice = [];
-  state.adviceForm.content = '';
-  getList();
+	state.active = 'default';
+	state.manage = false;
+	state.chooseAdvice = [];
+	state.adviceForm.content = '';
+	getList();
 };
 // 删除常用意见
 const deleteAdvice = () => {
-  if (!state.chooseAdvice.length) {
-    ElMessage.warning('请选择要删除的常用意见');
-    return;
-  }
-  ElMessageBox.confirm(`确定要删除选中的常用意见,是否继续?`, '提示', {
-    confirmButtonText: '确认',
-    cancelButtonText: '取消',
-    draggable: true,
-    cancelButtonClass: 'default-button',
-    type: 'warning',
-  })
-      .then(() => {
-        const chooseAdvice = state.chooseAdvice.map((item: any) => {
-          return item.id;
-        });
-        deleteCommon({ ids: chooseAdvice }).then(() => {
-          ElMessage.success('操作成功');
-          resetState();
-          state.loading = false;
-        });
-      })
-      .catch(() => {});
+	if (!state.chooseAdvice.length) {
+		ElMessage.warning('请选择要删除的常用意见');
+		return;
+	}
+	ElMessageBox.confirm(`确定要删除选中的常用意见,是否继续?`, '提示', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		draggable: true,
+		cancelButtonClass: 'default-button',
+		type: 'warning',
+	})
+		.then(() => {
+      const ids = state.chooseAdvice.map((item: any) => item.id);
+			deleteCommon({ ids }).then(() => {
+				ElMessage.success('操作成功');
+				resetState();
+				state.loading = false;
+			});
+		})
+		.catch(() => {});
 };
 // 添加常用意见 保存
 const adviceSave = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.validate((valid: boolean) => {
-    if (!valid) return;
-    state.loading = true;
-    addCommon({
-      typeCode: state.typecode,
-      content: state.adviceForm.content,
-    }).then(() => {
-      ElMessage.success('操作成功');
-      resetState();
-      state.loading = false;
-    });
-  })
+	if (!formEl) return;
+	formEl.validate((valid: boolean) => {
+		if (!valid) return;
+		state.loading = true;
+		addCommon({
+			commonType: state.commonType,
+			content: state.adviceForm.content,
+		}).then(() => {
+			ElMessage.success('操作成功');
+			resetState();
+			state.loading = false;
+		});
+	});
 };
 // 选择常用意见 填入填写框
 const chooseAdvice = (item: any) => {
-  emit('chooseAdvice', item);
-  closeDialog();
+	emit('chooseAdvice', item);
+	closeDialog();
 };
 // 关闭弹窗
 const closeDialog = () => {
-  state.showDrawer = false;
+	state.showDrawer = false;
 };
 // 暴露变量
 defineExpose({
-  openDialog,
-  closeDialog,
+	openDialog,
+	closeDialog,
 });
 </script>
 <style lang="scss" scoped>
 .textarea {
-  position: relative;
-  .buttons {
-    position: absolute;
-    right: 10px;
-    bottom: 10px;
-  }
-  :deep(.el-textarea__inner) {
-    padding-bottom: 40px;
-  }
-  :deep(.el-textarea .el-input__count){
-    font-size: 16px;
-    bottom: 20px;
-    right: 250px;
-  }
+	position: relative;
+	.buttons {
+		position: absolute;
+		right: 10px;
+		bottom: 10px;
+	}
+	:deep(.el-textarea__inner) {
+		padding-bottom: 40px;
+	}
+	:deep(.el-textarea .el-input__count) {
+		font-size: 16px;
+		bottom: 20px;
+		right: 250px;
+	}
 }
 .comments-container {
-  .comments-box {
-    .comments-item {
-      border: var(--el-border);
-      border-radius: var(--el-border-radius-base);
-      margin-bottom: 10px;
-      padding: 8px 15px;
-      cursor: pointer;
-      position: relative;
-      line-height: 18px;
-      &:hover {
-        box-shadow: 0 0 0 1px var(--el-color-primary) inset;
-        background-color: var(--hotline-bg-main-color);
-      }
-      .check-icon {
-        position: absolute;
-        right: 0;
-        top: -13px;
-      }
-    }
-    .chose {
-      box-shadow: 0 0 0 1px var(--el-color-primary) inset;
-    }
-  }
+	.comments-box {
+		.comments-item {
+			border: var(--el-border);
+			border-radius: var(--el-border-radius-base);
+			margin-bottom: 10px;
+			padding: 8px 15px;
+			cursor: pointer;
+			position: relative;
+			line-height: 18px;
+			&:hover {
+				box-shadow: 0 0 0 1px var(--el-color-primary) inset;
+				background-color: var(--hotline-bg-main-color);
+			}
+			.check-icon {
+				position: absolute;
+				right: 0;
+				top: -13px;
+			}
+		}
+		.chose {
+			box-shadow: 0 0 0 1px var(--el-color-primary) inset;
+		}
+	}
 }
 .comments-header {
-  .active {
-    color: var(--el-color-primary);
-    //font-size: var(--el-font-size-medium);
-  }
+	.active {
+		color: var(--el-color-primary);
+		//font-size: var(--el-font-size-medium);
+	}
 }
 :deep(.el-drawer__footer) {
-  box-shadow: 0px -4px 10px 0px rgb(0 0 0 / 10%);
-  border-radius: 0 0 8px 0;
-  padding: 10px 20px;
+	box-shadow: 0px -4px 10px 0px rgb(0 0 0 / 10%);
+	border-radius: 0 0 8px 0;
+	padding: 10px 20px;
 }
 </style>

+ 26 - 24
src/utils/constants.ts

@@ -76,30 +76,32 @@ export const shortcuts = [
 
 /**
  * @description 常用意见
- * @param  {string} Discriminate  甄别惯用语
- * @param  {string} Return  退回惯用语
- * @param  {string} Archive  归档惯用语
- * @param  {string} Teti  特提惯用语
- * @param  {string} Seat  坐席惯用语
- * @param  {string} OrderCirculation  工单流转惯用语
- * @param  {string} ReturnVisit  回访惯用语
- * @param  {string} HandleAgain  办理惯用语
- * @param  {string} Delay  延期惯用语
- * @param  {string} Supervise  督办惯用语
- * @param  {string} KnowledgeLocution  知识诉求惯用语
+ * @param  {number}  Seat 坐席  1
+ * @param  {number}  Rest 休息  2
+ * @param  {number} OrderCirculation 工单流转  3
+ * @param  {number} KnowledgeL 知识库  4
+ * @param  {number} RestReason 休息原因  5
+ * @param  {number} HandleAgain 办理意见  6
+ * @param  {number} Supervise 督办意见  7
+ * @param  {number} Return 退回意见  8
+ * @param  {number} Archive 归档意见  9
+ * @param  {number} Teti 特提  10
+ * @param  {number} Discriminate 甄别  11
+ * @param  {number} ReturnVisit 回访  12
+ * @param  {number} Delay 延期  13
  */
 export const commonEnum = {
-    Discriminate: 'Discriminate', //  甄别惯用语
-    Return: 'Return', // 退回惯用语
-    Archive: 'Archive', // 归档惯用语
-    Teti: 'Teti', // 特提惯用语
-    Seat: 'Seat', // 坐席惯用语
-    OrderCirculation: 'OrderCirculation', // 工单流转惯用语
-    ReturnVisit: 'ReturnVisit', // 回访惯用语
-    HandleAgain: 'HandleAgain', // 办理惯用语
-    Delay: 'Delay', // 延期惯用语
-    Supervise: 'Supervise', // 督办惯用语
-    KnowledgeLocution: 'KnowledgeLocution', // 知识诉求惯用语
-    RestReason: 'RestReason', // 小休原因
-    Rest: 'Rest', // 小休常用意见
+    Seat: 1,
+    Rest: 2,
+    OrderCirculation: 3,
+    KnowledgeL: 4,
+    RestReason: 5,
+    HandleAgain: 6,
+    Supervise: 7,
+    Return: 8,
+    Archive: 9,
+    Teti: 10,
+    Discriminate: 11,
+    ReturnVisit: 12,
+    Delay: 13,
 };

+ 1 - 1
src/views/business/order/components/Order-revoke.vue

@@ -50,7 +50,7 @@
 								v-model="state.ruleForm.opinion"
 								placeholder="请填写撤销原因"
 								:loading="state.loading"
-								:commonEnum="commonEnum.OrderCirculation"
+								:commonEnum="commonEnum['OrderCirculation']"
 							/>
 						</el-form-item>
 					</el-col>

+ 1 - 1
src/views/business/order/components/Order-supply.vue

@@ -44,7 +44,7 @@
                   v-model="state.ruleForm.opinion"
                   placeholder="请填写补充内容"
                   :loading="state.loading"
-                  :commonEnum="commonEnum.HandleAgain"
+                  :commonEnum="commonEnum['OrderCirculation']"
               />
 						</el-form-item>
 					</el-col>

+ 6 - 55
src/views/home/component/Backlog-list.vue

@@ -142,51 +142,8 @@
           </template>
         </el-table-column>
       </template>
-      <!-- 退回待办 -->
-      <template v-if="activeName === '3'">
-        <el-table-column prop="no" label="工单编号" show-overflow-tooltip></el-table-column>
-        <el-table-column width="100" label="省/市工单" prop="isProvince" >
-          <template #default="{ row }">
-            <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="no" label="当前节点" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="工单状态" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="工单标题" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="受理时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="no" label="接办部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="接办人" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="节点期满时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="expiredTime" label="工单期满时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="no" label="受理类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="退回申请时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="no" label="退回申请理由" show-overflow-tooltip width="120"></el-table-column>
-        <el-table-column label="操作" width="150" fixed="right" align="center">
-          <template #default="{ row }">
-            <el-button link type="primary" @click="onOrderDetail(row)" title="退回审批" v-auth="'business:screen:detail'">
-              退回审批
-            </el-button>
-          </template>
-        </el-table-column>
-      </template>
       <!-- 发布待办 -->
-      <template v-if="activeName === '4'">
+      <template v-if="activeName === '3'">
         <el-table-column prop="no" label="工单编号" show-overflow-tooltip></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
@@ -227,7 +184,7 @@
         </el-table-column>
       </template>
       <!-- 回访待办 -->
-      <template v-if="activeName === '5'">
+      <template v-if="activeName === '4'">
         <el-table-column prop="no" label="工单编号" show-overflow-tooltip></el-table-column>
         <el-table-column prop="no" label="工单变体" show-overflow-tooltip></el-table-column>
         <el-table-column prop="no" label="来源方式" show-overflow-tooltip></el-table-column>
@@ -299,15 +256,12 @@ const tabsList = ref([
   },{
     label: '甄别待办',
     name: '2',
-  },{
-    label: '退回待办',
-    name: '3',
   },{
     label: '发布待办',
-    name: '4',
+    name: '3',
   },{
     label: '回访待办',
-    name: '5',
+    name: '4',
   },
 ])
 const activeName = ref<string>('0'); // tab切换
@@ -344,13 +298,10 @@ const linkList = ()=>{
     case '2': //甄别待办
       router.push('/business/discern/backlog')
       break;
-    case '3': // 退回待办
-      router.push('/business/return/backlog')
-      break;
-    case '4': // 发布待办
+    case '3': // 发布待办
       router.push('/business/publish')
       break;
-    case '5': // 回访待办
+    case '4': // 回访待办
       router.push('/business/followUp/backlog')
       break;
   }

+ 24 - 37
src/views/system/config/advice/component/Advice-add.vue

@@ -1,36 +1,25 @@
 <template>
-		<el-dialog v-model="state.dialogVisible" width="50%" draggable title="新增参数">
+		<el-dialog v-model="state.dialogVisible" width="50%" draggable title="新增常用意见">
 			<el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数名称" prop="settingName" :rules="[{ required: true, message: '请输入参数名称', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.settingName" placeholder="请输入参数名称" clearable></el-input>
+						<el-form-item label="意见内容" prop="content" :rules="[{ required: true, message: '请输入意见内容', trigger: 'blur' }]">
+							<el-input v-model="state.ruleForm.content" placeholder="请输入意见内容" clearable></el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数" prop="code" :rules="[{ required: true, message: '请输入参数', trigger: 'blur' }]">
-							<el-input v-model.trim="state.ruleForm.code" placeholder="请输入参数" clearable></el-input>
+						<el-form-item label="意见类型" prop="commonType" :rules="[{ required: true, message: '请选择意见类型', trigger: 'change' }]">
+              <el-select v-model="state.ruleForm.commonType" placeholder="请选择意见类型" clearable class="w100">
+                <el-option v-for="item in commonType" :value="item.key" :key="item.key" :label="item.value" />
+              </el-select>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数值" prop="settingValue" :rules="[{ required: true, message: '请输入参数值', trigger: 'blur' }]">
-							<el-input v-model.trim="state.ruleForm.settingValue" placeholder="有多个参数值,请以的|隔开,如1|2|3" clearable></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="排序" prop="sort" :rules="[{ required: false, message: '请输入排序', trigger: 'blur' }]">
-							<el-input-number v-model="state.ruleForm.sort" :min="1" :precision="0" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="参数说明" prop="remark" :rules="[{ required: false, message: '请输入参数说明', trigger: 'blur' }]">
-							<el-input
-								type="textarea"
-								:autosize="{ minRows: 6, maxRows: 10 }"
-								v-model="state.ruleForm.remark"
-								placeholder="请输入参数说明"
-								clearable
-							></el-input>
+						<el-form-item label="是否公开意见" prop="isOpen" :rules="[{ required: false, message: '请选择是否公开意见', trigger: 'change' }]" label-width="120px">
+              <el-radio-group v-model="state.ruleForm.isOpen" class="ml-4">
+                <el-radio :label="true">公开常用意见</el-radio>
+                <el-radio :label="false">个人常用意见</el-radio>
+              </el-radio-group>
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -48,19 +37,22 @@
 import { reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
 import { throttle } from '/@/utils/tools';
-import { SetingsAdd } from '/@/api/system/parameter';
+import { addCommon } from '/@/api/system/commonAdvice';
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
-
+const props = defineProps({
+  commonType: {
+    type: Array,
+    default: () => [],
+  },
+});
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
 	ruleForm: {
-		settingName: '', // 参数名称
-		code: '', // 参数
-		settingValue: '', // 参数值
-		sort: 1, // 排序
-		remark: '', // 参数说明
+    content: '', // 意见内容
+    commonType: '', // 意见类型
+    isOpen:true, // 是否公开意见
 	},
 });
 let loading = ref<boolean>(false);  // 加载状态
@@ -88,8 +80,7 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	await formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		loading.value = true;
-		state.ruleForm.settingValue = state.ruleForm.settingValue.split('|');
-		SetingsAdd(state.ruleForm)
+    addCommon(state.ruleForm)
 			.then(() => {
 				ElMessage({
 					message: '操作成功',
@@ -98,11 +89,7 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 				emit('updateList');
 			})
 			.catch((error) => {
-				// 新增失败
-				ElMessage({
-					message: `操作失败: ${error.message}`,
-					type: 'error',
-				});
+
 			})
 			.finally(() => {
 				loading.value = false;

+ 48 - 68
src/views/system/config/advice/component/Advice-edit.vue

@@ -1,47 +1,30 @@
 <template>
-		<el-dialog v-model="state.dialogVisible" width="50%" draggable :title="dialogTitle">
-			<el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
-				<el-row :gutter="10">
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数名称" prop="settingName" :rules="[{ required: true, message: '请输入参数名称', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.settingName" placeholder="请输入参数名称" clearable :disabled="state.isDisabled"></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数" prop="code" :rules="[{ required: true, message: '请输入参数', trigger: 'blur' }]">
-							<el-input v-model.trim="state.ruleForm.code" placeholder="请输入参数" clearable :disabled="state.isDisabled"></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="参数值" prop="settingValue" :rules="[{ required: true, message: '请输入参数值', trigger: 'blur' }]">
-							<el-input
-								v-model.trim="state.ruleForm.settingValue"
-								placeholder="有多个参数值,请以的|隔开,如1|2|3"
-								clearable
-								:disabled="state.isDisabled"
-							></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="排序" prop="sort" :rules="[{ required: false, message: '请输入排序', trigger: 'blur' }]">
-							<el-input-number v-model="state.ruleForm.sort" :min="1" :precision="0" :disabled="state.isDisabled" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="参数说明" prop="remark" :rules="[{ required: false, message: '请输入参数说明', trigger: 'blur' }]">
-							<el-input
-								:disabled="state.isDisabled"
-								type="textarea"
-								:autosize="{ minRows: 6, maxRows: 10 }"
-								v-model="state.ruleForm.remark"
-								placeholder="请输入参数说明"
-								clearable
-							></el-input>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<template #footer v-if="!state.isDisabled">
+		<el-dialog v-model="state.dialogVisible" width="50%" draggable title="修改常用意见">
+      <el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
+        <el-row :gutter="10">
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+            <el-form-item label="意见内容" prop="content" :rules="[{ required: true, message: '请输入意见内容', trigger: 'blur' }]">
+              <el-input v-model="state.ruleForm.content" placeholder="请输入意见内容" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+            <el-form-item label="意见类型" prop="commonType" :rules="[{ required: true, message: '请选择意见类型', trigger: 'change' }]">
+              <el-select v-model="state.ruleForm.commonType" placeholder="请选择意见类型" class="w100">
+                <el-option v-for="item in commonType" :value="item.key" :key="item.key" :label="item.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+            <el-form-item label="是否公开意见" prop="isOpen" :rules="[{ required: false, message: '请选择是否公开意见', trigger: 'change' }]" label-width="120px">
+              <el-radio-group v-model="state.ruleForm.isOpen" class="ml-4">
+                <el-radio :label="true">公开常用意见</el-radio>
+                <el-radio :label="false">个人常用意见</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+			<template #footer>
 				<span class="dialog-footer">
 					<el-button @click="onCancel" class="default-button">取 消</el-button>
 					<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
@@ -51,38 +34,35 @@
 </template>
 
 <script setup lang="ts" name="parameterEdit">
-import { computed, reactive, ref } from 'vue';
+import { reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
 import { throttle } from '/@/utils/tools';
-import { modifySettings, setitngsDetail } from '/@/api/system/parameter';
+import { commonUpdate } from '/@/api/system/commonAdvice';
+import other from "/@/utils/other";
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
-
+const props = defineProps({
+  commonType: {
+    type: Array,
+    default: () => [],
+  },
+});
 // 定义变量内容
 const state = reactive<any>({
 	dialogVisible: false,
-	ruleForm: {
-		settingName: '', // 参数名称
-		code: '', // 参数
-		settingValue: '', // 参数值
-		sort: 1, // 排序
-		remark: '', // 参数说明
-	},
-	isDisabled: false, // 是否禁用
+  ruleForm: {
+    content: '', // 意见内容
+    CommonType: '', // 意见类型
+    isOpen:true, // 是否公开意见
+  },
 });
 let loading = ref<boolean>(false);  // 加载状态
-const dialogTitle = computed(() => {
-	return state.isDisabled ? '查看参数' : '编辑参数';
-});
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
-const openDialog = async (id: string, isDisabled?: boolean) => {
+const openDialog = async (row:any) => {
 	ruleFormRef.value?.resetFields();
 	try {
-		const res: any = await setitngsDetail(id);
-		state.ruleForm = res.result ?? <EmptyObjectType>{};
-		state.ruleForm.settingValue = state.ruleForm.settingValue?.join('|');
-		state.isDisabled = isDisabled ?? false;
+    state.ruleForm = other.deepClone(row);
 		state.dialogVisible = true;
 	} catch (error) {
 		console.log(error);
@@ -102,8 +82,7 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 	await formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		loading.value = true;
-		state.ruleForm.settingValue = state.ruleForm.settingValue.split('|');
-		modifySettings(state.ruleForm)
+    commonUpdate(state.ruleForm)
 			.then(() => {
 				ElMessage({
 					message: '操作成功',
@@ -114,10 +93,11 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
 				emit('updateList');
 			})
 			.catch(() => {
-				// 新增失败
-				loading.value = false;
-				closeDialog();
-			});
+
+			}).finally(() => {
+        loading.value = false;
+        closeDialog();
+      });
 	});
 }, 1000);
 // 暴露变量

+ 58 - 43
src/views/system/config/advice/index.vue

@@ -2,11 +2,10 @@
 	<div class="system-config-advice-container layout-pd">
     <el-card shadow="never">
       <el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent>
-        <el-form-item label="参数名称" prop="settingName">
-          <el-input v-model="state.queryParams.settingName" placeholder="请输入参数名称" clearable @keyup.enter="queryList" />
-        </el-form-item>
-        <el-form-item label="参数" prop="code">
-          <el-input v-model="state.queryParams.code" placeholder="请输入参数" clearable @keyup.enter="queryList" />
+        <el-form-item label="意见类型" prop="CommonType">
+          <el-select v-model="state.queryParams.CommonType" placeholder="请选择意见类型" clearable class="w100">
+            <el-option v-for="item in commonType" :value="item.key" :key="item.key" :label="item.value" />
+          </el-select>
         </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -16,32 +15,33 @@
     </el-card>
 		<el-card shadow="never">
 			<div class="mb20">
-				<el-button type="primary" @click="addParameter" v-waves v-auth="'system:config:advice:add'">
+				<el-button type="primary" @click="onAdviceAdd" v-waves v-auth="'system:config:advice:add'">
 					<SvgIcon name="ele-Plus" class="mr5" />新增
 				</el-button>
+        <el-button type="primary" @click="onAdviceDelete" v-waves v-auth="'system:config:advice:delete'" :disabled="!multipleSelection.length">
+          <SvgIcon name="ele-Delete" class="mr5" />删除
+        </el-button>
 			</div>
 			<!-- 表格 -->
-			<el-table :data="state.tableData" v-loading="state.loading">
-				<el-table-column type="index" width="60" label="序号" />
-				<el-table-column prop="settingName" label="参数名称" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="code" label="参数" show-overflow-tooltip width="130"></el-table-column>
-				<el-table-column prop="settingValue" label="参数值" show-overflow-tooltip>
-					<template #default="{ row }">
-						<span v-if="row.settingValue">{{ row.settingValue.join('|') }}</span>
-					</template>
-				</el-table-column>
-				<el-table-column prop="remark" label="参数说明" show-overflow-tooltip width="300"></el-table-column>
-				<el-table-column prop="creator.name" label="创建人" show-overflow-tooltip></el-table-column>
+			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" />
+				<el-table-column prop="content" label="意见内容" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="commonTypeText" label="意见类型" show-overflow-tooltip width="130"></el-table-column>
+        <el-table-column prop="isOpen" label="是否公开意见" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            {{row.isOpen ? '是' : '否'}}
+          </template>
+        </el-table-column>
+				<el-table-column prop="creatorName" label="创建人" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="creatorOrgName" label="创建部门" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="afterBegin" label="创建时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
 						<span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column prop="sort" label="排序" show-overflow-tooltip width="60"></el-table-column>
-				<el-table-column label="操作" width="200" fixed="right" align="center">
+				<el-table-column label="操作" width="120" fixed="right" align="center">
 					<template #default="{ row }">
-						<el-button link type="primary" @click="updateParameter(row)" v-auth="'system:config:advice:edit'" title="修改参数"> 修改 </el-button>
-						<el-button link type="info" @click="viewParameter(row)" v-auth="'system:config:advice:detail'" title="查看详情"> 查看 </el-button>
+						<el-button link type="primary" @click="updateAdvice(row)" v-auth="'system:config:advice:edit'" title="修改参数"> 修改 </el-button>
 						<!--              <el-button link type="danger" @click="parameterDelete(row)" v-auth="'system:timeLimit:detail'" title="删除参数"> 删除 </el-button>-->
 					</template>
 				</el-table-column>
@@ -58,19 +58,19 @@
 			/>
 		</el-card>
 		<!--  常用意见新增  -->
-		<advice-add ref="adviceAddRef" @updateList="queryList" />
+		<advice-add ref="adviceAddRef" @updateList="queryList" :commonType="commonType"/>
 		<!--  常用意见编辑  -->
-		<advice-edit ref="adviceEditRef" @updateList="queryList" />
+		<advice-edit ref="adviceEditRef" @updateList="queryList" :commonType="commonType"/>
 	</div>
 </template>
 
 <script lang="ts" setup name="systemConfigAdvice">
 import { reactive, ref, onMounted, defineAsyncComponent } from 'vue';
-import { getSystemSettings } from '/@/api/system/parameter';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { throttle } from '/@/utils/tools';
 import { formatDate } from '/@/utils/formatTime';
 import {auth} from "/@/utils/authFunction";
+import {commonBaseData,publicCommonList,deleteCommon} from '/@/api/system/commonAdvice';
 
 // 引入组件
 const AdviceAdd = defineAsyncComponent(() => import('/@/views/system/config/advice/component/Advice-add.vue')); // 常用意见新增
@@ -83,19 +83,28 @@ const state = reactive<any>({
 		// 查询参数
 		PageIndex: 1,
 		PageSize: 10,
-		settingName: '', // 参数名称
+    CommonType: '', // 常用意见类型
 		code: '', // 参数编码
 	},
 	total: 0, // 总条数
 	tableData: [], // 表格数据
 });
 const ruleFormRef = ref<any>(null); // 表单ref
+const commonType = ref<any>([]); // 常用意见类型
+const getBaseData = async ()=>{
+  try {
+    const res = await commonBaseData();
+    commonType.value = res.result?.commonType ?? [];
+  } catch (error) {
+    console.log(error);
+  }
+}
 // 获取参数列表
 const queryList = throttle(() => {
 	state.loading = true;
-  if (!auth('system:config:advice:query')) ElMessage.error('抱歉,您没有权限获取系统参数列表!');
+  if (!auth('system:config:advice:query')) ElMessage.error('抱歉,您没有权限获取公开意见列表!');
   else {
-    getSystemSettings(state.queryParams)
+    publicCommonList(state.queryParams)
         .then((res) => {
           state.loading = false;
           state.tableData = res.result.items ?? [];
@@ -112,23 +121,28 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	formEl.resetFields();
 	queryList();
 };
-// 新增参数
-const adviceAddRef = ref<RefType>(); // 参数新增
-const addParameter = () => {
+// 新增意见
+const adviceAddRef = ref<RefType>(); // 意见新增
+console.log(adviceAddRef,21)
+const onAdviceAdd = () => {
 	adviceAddRef.value.openDialog();
 };
-// 修改参数
-const adviceEditRef = ref<RefType>(); // 参数编辑
-const updateParameter = (row: any) => {
-	adviceEditRef.value.openDialog(row.id);
+// 修改意见
+const adviceEditRef = ref<RefType>(); // 修改意见
+const updateAdvice = (row: any) => {
+	adviceEditRef.value.openDialog(row);
 };
-// 查看详情
-const viewParameter = (row: any) => {
-	adviceEditRef.value.openDialog(row.id, true);
+// 表格多选
+const multipleTableRef = ref<RefType>();
+const multipleSelection = ref<any>([]);
+const handleSelectionChange = (val: any[]) => {
+  multipleSelection.value = val;
 };
 // 删除参数
-const parameterDelete = (row: any) => {
-	ElMessageBox.confirm(`此操作将删除模板:“${row.name}”,是否继续?`, '提示', {
+const onAdviceDelete = () => {
+  const contents = multipleSelection.value.map((item: any) => item.content).join('、');
+  const ids = multipleSelection.value.map((item: any) => item.id);
+	ElMessageBox.confirm(`您确定要删除:【${contents}】的常用意见,是否继续?`, '提示', {
 		confirmButtonText: '确认',
 		cancelButtonText: '取消',
 		type: 'warning',
@@ -137,15 +151,16 @@ const parameterDelete = (row: any) => {
 		autofocus: false,
 	})
 		.then(() => {
-			// workflowDelete(row.id).then(() => {
-			ElMessage.success('删除成功');
-			queryList();
-			// });
+			deleteCommon({ids}).then(() => {
+        ElMessage.success('操作成功');
+        queryList();
+			});
 		})
 		.catch(() => {});
 };
 // 页面加载时
 onMounted(() => {
+  getBaseData();
 	queryList();
 });
 </script>