|
@@ -11,23 +11,17 @@
|
|
|
<span v-if="view === 'list'">
|
|
|
<el-col :span="24" class="one"> <span>系统消息管理</span> </el-col>
|
|
|
<data-search :fields="searchFields" v-model="searchInfo" @query="search">
|
|
|
- <template #status>
|
|
|
- <el-option v-for="i in statusList" :key="i.label" :label="i.label" :value="i.value"></el-option>
|
|
|
+ <template #source>
|
|
|
+ <el-option v-for="i in sourceList" :key="i.label" :label="i.label" :value="i.value"></el-option>
|
|
|
</template>
|
|
|
</data-search>
|
|
|
<data-btn :fields="btnList" @add="toAdd"></data-btn>
|
|
|
- <data-table
|
|
|
- ref="dataTable"
|
|
|
- :fields="fields"
|
|
|
- :opera="opera"
|
|
|
- :data="list"
|
|
|
- :total="total"
|
|
|
- @query="search"
|
|
|
- @edit="toEdit"
|
|
|
- @delete="toDelete"
|
|
|
- ></data-table>
|
|
|
+ <el-col :span="24" class="two">
|
|
|
+ <data-table ref="dataTable" :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @view="toView"></data-table>
|
|
|
+ </el-col>
|
|
|
</span>
|
|
|
- <detail v-if="view === 'info'" :id="id" @toBack="toBack"></detail>
|
|
|
+ <notice v-if="view === 'info'" :id="id" @toBack="toBack"></notice>
|
|
|
+ <detail v-if="view === 'infos'" :id="id" @goBack="toBack"></detail>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
@@ -36,6 +30,7 @@
|
|
|
<script>
|
|
|
const _ = require('lodash');
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: msgList } = createNamespacedHelpers('msgList');
|
|
|
const { mapActions: notice } = createNamespacedHelpers('notice');
|
|
|
const { mapActions: dictData } = createNamespacedHelpers('dictData'); // 字典
|
|
|
|
|
@@ -43,6 +38,7 @@ export default {
|
|
|
name: 'index',
|
|
|
props: {},
|
|
|
components: {
|
|
|
+ notice: () => import('./notice.vue'),
|
|
|
detail: () => import('./detail.vue'),
|
|
|
},
|
|
|
data: function () {
|
|
@@ -51,8 +47,8 @@ export default {
|
|
|
loading: false,
|
|
|
view: 'list',
|
|
|
fields: [
|
|
|
- { label: '用户', model: 'customer.name', showTip: false },
|
|
|
{ label: '发送时间', model: 'time' },
|
|
|
+ { label: '来源id', model: '_id' },
|
|
|
{
|
|
|
label: '信息来源',
|
|
|
model: 'source',
|
|
@@ -62,71 +58,48 @@ export default {
|
|
|
else return '暂无';
|
|
|
},
|
|
|
},
|
|
|
- {
|
|
|
- label: '状态',
|
|
|
- model: 'status',
|
|
|
- format: (i) => {
|
|
|
- let data = this.statusList.find((f) => f.value == i);
|
|
|
- if (data) return data.label;
|
|
|
- else return '暂无';
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- opera: [
|
|
|
- { label: '修改', method: 'edit' },
|
|
|
- { label: '删除', method: 'delete', confirm: true, type: 'danger' },
|
|
|
],
|
|
|
btnList: [{ label: '添加', method: 'add' }],
|
|
|
- searchFields: [{ label: '状态', model: 'status', type: 'select' }],
|
|
|
+ opera: [{ label: '查看', method: 'view' }],
|
|
|
+ searchFields: [{ label: '信息来源', model: 'source', type: 'select' }],
|
|
|
searchInfo: {},
|
|
|
list: [],
|
|
|
total: 0,
|
|
|
id: '',
|
|
|
- // 状态
|
|
|
- statusList: [],
|
|
|
// 信息来源
|
|
|
sourceList: [],
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.searchOthers();
|
|
|
-
|
|
|
this.search();
|
|
|
},
|
|
|
methods: {
|
|
|
...dictData({ dictQuery: 'query' }),
|
|
|
...notice(['query', 'delete', 'fetch', 'update', 'create']),
|
|
|
+ ...msgList({ msgQuery: 'query' }),
|
|
|
// 查询
|
|
|
async search({ skip = 0, limit = this.$limit, ...others } = {}) {
|
|
|
let query = { skip, limit, ...others };
|
|
|
if (Object.keys(this.searchInfo).length > 0) query = { ...query, ...this.searchInfo };
|
|
|
- const res = await this.query(query);
|
|
|
+ const res = await this.msgQuery(query);
|
|
|
if (this.$checkRes(res)) {
|
|
|
this.$set(this, `list`, res.data);
|
|
|
this.$set(this, `total`, res.total);
|
|
|
}
|
|
|
this.loadings = false;
|
|
|
},
|
|
|
-
|
|
|
// 新增
|
|
|
toAdd() {
|
|
|
let id = '';
|
|
|
this.$set(this, `id`, id);
|
|
|
- this.$set(this, `view`, 'info');
|
|
|
+ this.$set(this, `view`, 'infos');
|
|
|
},
|
|
|
- // 修改
|
|
|
- async toEdit({ data }) {
|
|
|
+ // 查看
|
|
|
+ async toView({ data }) {
|
|
|
this.$set(this, `id`, data._id);
|
|
|
this.$set(this, `view`, 'info');
|
|
|
},
|
|
|
- // 删除
|
|
|
- async toDelete({ data }) {
|
|
|
- let res = await this.delete(data._id);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$message({ type: `success`, message: `刪除信息成功` });
|
|
|
- this.search();
|
|
|
- }
|
|
|
- },
|
|
|
// 执行返回
|
|
|
toBack() {
|
|
|
this.view = 'list';
|
|
@@ -134,8 +107,6 @@ export default {
|
|
|
// 查询其他信息
|
|
|
async searchOthers() {
|
|
|
let res;
|
|
|
- res = await this.dictQuery({ code: 'notice_status' });
|
|
|
- if (this.$checkRes(res)) this.$set(this, `statusList`, res.data);
|
|
|
// 信息来源
|
|
|
res = await this.dictQuery({ code: 'notice_source' });
|
|
|
if (this.$checkRes(res)) this.$set(this, `sourceList`, res.data);
|
|
@@ -159,7 +130,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.two {
|
|
|
- margin: 0 0 10px 0;
|
|
|
+ margin: 20px 0 10px 0;
|
|
|
}
|
|
|
.thr {
|
|
|
margin: 0 0 10px 0;
|