|
@@ -5,35 +5,46 @@
|
|
|
<el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="main">
|
|
|
- <data-table :fields="fields" :opera="opera" @edit="toEdit" :data="list" :total="total" @delete="toDelete" @query="search"></data-table>
|
|
|
+ <data-table :fields="fields" :opera="opera" :data="list" :total="total" @edit="toEdit" @delete="toDelete" @check="toCheck" @query="search"></data-table>
|
|
|
</el-col>
|
|
|
<el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
|
|
|
- <el-form ref="form" :rules="rules" :model="form" label-width="100px">
|
|
|
+ <el-form ref="form" :rules="rules" :model="form" label-width="100px" v-if="loading">
|
|
|
<el-form-item label="标题" prop="title">
|
|
|
<el-input v-model="form.title" placeholder="请输入信息标题"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="来源">
|
|
|
<el-input v-model="form.source" placeholder="请输入信息来源"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="信息内容">
|
|
|
- <wang-editor v-model="form.content" placeholder="请输入信息内容"></wang-editor>
|
|
|
- </el-form-item>
|
|
|
<el-form-item label="发布时间">
|
|
|
<el-col :span="11">
|
|
|
<el-date-picker type="date" placeholder="发布时间" value-format="yyyy-MM-dd" v-model="form.create_time" style="width: 100%;"></el-date-picker>
|
|
|
</el-col>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否启用">
|
|
|
- <el-radio-group v-model="form.isenable">
|
|
|
- <el-radio label="1">启用</el-radio>
|
|
|
- <el-radio label="2">禁用</el-radio>
|
|
|
- </el-radio-group>
|
|
|
+ <el-form-item label="信息内容">
|
|
|
+ <wang-editor v-model="form.content" placeholder="请输入信息内容"></wang-editor>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="onSubmit()">提交</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog :title="theme" width="60%" :visible.sync="isenabledialog" @closed="handleClose" :destroy-on-close="true">
|
|
|
+ <div class="isenabledialog">
|
|
|
+ <p>
|
|
|
+ <el-radio-group v-model="noticeInfo.isenable">
|
|
|
+ <el-radio label="1">启用</el-radio>
|
|
|
+ <el-radio label="2">禁用</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-button type="primary" size="mini" @click="isenableBtn">保存</el-button>
|
|
|
+ </p>
|
|
|
+ <p>{{ noticeInfo.title }}</p>
|
|
|
+ <p>
|
|
|
+ <span>来源:{{ noticeInfo.source }}</span>
|
|
|
+ <span>发布时间:{{ noticeInfo.create_time }}</span>
|
|
|
+ </p>
|
|
|
+ <p v-html="noticeInfo.content"></p>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</el-col>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -55,9 +66,15 @@ export default {
|
|
|
data: function() {
|
|
|
return {
|
|
|
theme: '通知',
|
|
|
+ loading: true,
|
|
|
opera: [
|
|
|
{
|
|
|
- label: '修改&启用',
|
|
|
+ label: '启用&禁用',
|
|
|
+ icon: 'el-icon-check',
|
|
|
+ method: 'check',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '修改',
|
|
|
icon: 'el-icon-edit',
|
|
|
method: 'edit',
|
|
|
},
|
|
@@ -85,6 +102,9 @@ export default {
|
|
|
// 添加信息
|
|
|
form: {},
|
|
|
rules: {},
|
|
|
+ // 是否启用
|
|
|
+ isenabledialog: false,
|
|
|
+ noticeInfo: {},
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -92,23 +112,12 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
...notice(['query', 'fetch', 'update', 'create', 'delete']),
|
|
|
+ // 列表
|
|
|
async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
let arr = await this.query({ skip, limit, ...info });
|
|
|
this.$set(this, `list`, arr.data);
|
|
|
this.$set(this, `total`, arr.total);
|
|
|
},
|
|
|
- toEdit({ data }) {
|
|
|
- this.dialog = true;
|
|
|
- this.$set(this, `form`, data);
|
|
|
- },
|
|
|
- async toDelete({ data }) {
|
|
|
- let res = await this.delete(data.id);
|
|
|
- this.$message({
|
|
|
- message: '刪除信息成功',
|
|
|
- type: 'success',
|
|
|
- });
|
|
|
- this.search();
|
|
|
- },
|
|
|
// 添加
|
|
|
toAdd() {
|
|
|
this.dialog = true;
|
|
@@ -137,10 +146,51 @@ export default {
|
|
|
}
|
|
|
this.search();
|
|
|
},
|
|
|
+ // 启用&禁用
|
|
|
+ toCheck({ data }) {
|
|
|
+ this.isenabledialog = true;
|
|
|
+ this.$set(this, `noticeInfo`, data);
|
|
|
+ },
|
|
|
+ async isenableBtn() {
|
|
|
+ let arr = await this.query();
|
|
|
+ let data = arr.data.filter(i => i.isenable == '1');
|
|
|
+ if (data.length > 0 && this.noticeInfo.isenable == '1') {
|
|
|
+ alert('已有信息启用');
|
|
|
+ } else {
|
|
|
+ console.log(this.noticeInfo);
|
|
|
+ let res = await this.update(this.noticeInfo);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$message({
|
|
|
+ message: '添加信息成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.handleClose();
|
|
|
+ }
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ // 修改
|
|
|
+ toEdit({ data }) {
|
|
|
+ this.$set(this, `loading`, false);
|
|
|
+ this.dialog = true;
|
|
|
+ this.$set(this, `form`, data);
|
|
|
+ this.$set(this, `loading`, true);
|
|
|
+ },
|
|
|
+
|
|
|
+ // 删除
|
|
|
+ async toDelete({ data }) {
|
|
|
+ let res = await this.delete(data.id);
|
|
|
+ this.$message({
|
|
|
+ message: '刪除信息成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
// 取消
|
|
|
handleClose() {
|
|
|
this.form = {};
|
|
|
this.dialog = false;
|
|
|
+ this.isenabledialog = false;
|
|
|
},
|
|
|
},
|
|
|
computed: {
|
|
@@ -155,4 +205,31 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style lang="less" scoped></style>
|
|
|
+<style lang="less" scoped>
|
|
|
+.isenabledialog {
|
|
|
+ p:first-child {
|
|
|
+ text-align: center;
|
|
|
+ padding: 20px 0;
|
|
|
+ /deep/.el-radio__inner {
|
|
|
+ width: 25px;
|
|
|
+ height: 25px;
|
|
|
+ top: -4px;
|
|
|
+ }
|
|
|
+ /deep/.el-radio__label {
|
|
|
+ font-size: 25px;
|
|
|
+ }
|
|
|
+ .el-button {
|
|
|
+ margin: 0 0 0 15px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p:nth-child(2) {
|
|
|
+ text-align: center;
|
|
|
+ font-size: 30px;
|
|
|
+ }
|
|
|
+ p:nth-child(3) {
|
|
|
+ text-align: center;
|
|
|
+ font-size: 20px;
|
|
|
+ padding: 20px 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|