|
|
@@ -9,6 +9,9 @@
|
|
|
<el-form-item label="状态">
|
|
|
<ext-d-select v-model="queryParams.status" type="notice_status" placeholder="请选择" clearable style="width: 150px" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="目标">
|
|
|
+ <ext-d-select v-model="queryParams.target" type="notice_target" placeholder="请选择" clearable style="width: 150px" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="handleQuery">
|
|
|
<el-icon><ele-Search /></el-icon> 查询
|
|
|
@@ -42,6 +45,11 @@
|
|
|
<el-tag :type="getStatusType(row.status)">{{ getStatusLabel(row.status) }}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="target" label="目标" width="100" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ getTargetLabel(row.target) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="startTime" label="开始时间" width="170" align="center" />
|
|
|
<el-table-column prop="endTime" label="结束时间" width="170" align="center" />
|
|
|
<el-table-column prop="createTime" label="创建时间" width="170" align="center" />
|
|
|
@@ -76,6 +84,13 @@
|
|
|
<el-form-item label="公告内容" prop="content">
|
|
|
<el-input v-model="formData.content" type="textarea" :rows="5" placeholder="请输入公告内容" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="目标" prop="target">
|
|
|
+ <el-checkbox-group v-model="formData.targetList">
|
|
|
+ <el-checkbox label="client">客户端</el-checkbox>
|
|
|
+ <el-checkbox label="merchant">商户端</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <span style="color: #999; font-size: 12px; margin-left: 10px;">不选则默认全部</span>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="生效时间" prop="startTime">
|
|
|
<el-date-picker
|
|
|
v-model="formData.startTime"
|
|
|
@@ -116,7 +131,8 @@ const queryParams = reactive({
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
title: '',
|
|
|
- status: null as number | null
|
|
|
+ status: null as number | null,
|
|
|
+ target: '' as string
|
|
|
});
|
|
|
|
|
|
// 表格数据
|
|
|
@@ -134,7 +150,9 @@ const formData = reactive({
|
|
|
content: '',
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
- stationIdList: [] as number[]
|
|
|
+ stationIdList: [] as number[],
|
|
|
+ target: '' as string,
|
|
|
+ targetList: [] as string[]
|
|
|
});
|
|
|
|
|
|
const rules = {
|
|
|
@@ -152,6 +170,7 @@ const mockData = [
|
|
|
// 获取状态标签
|
|
|
const getStatusLabel = (status: number) => u.fmt.fmtDict(status, 'notice_status');
|
|
|
const getStatusType = (status: number) => u.fmt.fmtDictColor(status, 'notice_status');
|
|
|
+const getTargetLabel = (target: string) => u.fmt.fmtDict(target, 'notice_target');
|
|
|
|
|
|
// 查询数据
|
|
|
const handleQuery = async () => {
|
|
|
@@ -173,6 +192,7 @@ const handleQuery = async () => {
|
|
|
const resetQuery = () => {
|
|
|
queryParams.title = '';
|
|
|
queryParams.status = null;
|
|
|
+ queryParams.target = '';
|
|
|
queryParams.pageNum = 1;
|
|
|
handleQuery();
|
|
|
};
|
|
|
@@ -185,6 +205,8 @@ const handleAdd = () => {
|
|
|
formData.content = '';
|
|
|
formData.startTime = '';
|
|
|
formData.endTime = '';
|
|
|
+ formData.target = '';
|
|
|
+ formData.targetList = [];
|
|
|
dialogVisible.value = true;
|
|
|
};
|
|
|
|
|
|
@@ -196,6 +218,12 @@ const handleEdit = (row: any) => {
|
|
|
formData.content = row.content;
|
|
|
formData.startTime = row.startTime;
|
|
|
formData.endTime = row.endTime;
|
|
|
+ formData.target = row.target || '';
|
|
|
+ if (!row.target || row.target === 'all') {
|
|
|
+ formData.targetList = ['client', 'merchant'];
|
|
|
+ } else {
|
|
|
+ formData.targetList = row.target.split(',').filter(Boolean);
|
|
|
+ }
|
|
|
dialogVisible.value = true;
|
|
|
};
|
|
|
|
|
|
@@ -205,6 +233,12 @@ const handleSubmit = async () => {
|
|
|
await formRef.value.validate();
|
|
|
|
|
|
try {
|
|
|
+ // 将 targetList 转为 target 字符串
|
|
|
+ if (!formData.targetList || formData.targetList.length === 0 || formData.targetList.length === 2) {
|
|
|
+ formData.target = 'all';
|
|
|
+ } else {
|
|
|
+ formData.target = formData.targetList.join(',');
|
|
|
+ }
|
|
|
await $body('/notice/create', formData);
|
|
|
ElMessage.success(formData.id ? '修改成功' : '新增成功');
|
|
|
dialogVisible.value = false;
|