Ver Fonte

完成编辑和查看功能

完成编辑和查看功能
dangyunlong há 4 dias atrás
pai
commit
6ded1a54da

+ 7 - 1
src/styles/global.less

@@ -87,6 +87,7 @@
 .listEditBtn,
 .listMainBtn,
 .listUpBtn,
+.listRefuseBtn,
 .listLookBtn {
   width: 70px;
   height: 28px;
@@ -157,6 +158,11 @@
   background: @mainBg;
 }
 
+.listRefuseBtn {
+  color: #C59E4B;
+  background: @linkBg;
+}
+
 .listMainBtn:hover {
   background: #CAD9CB;
 }
@@ -408,4 +414,4 @@
 //   margin-bottom: 5px;
 // }
 
-// el-cascader高度 end
+// el-cascader高度 end

+ 29 - 18
src/views/news/messageCreat.vue

@@ -8,12 +8,12 @@
                 <div class="formDiv">
                     <div>
                         <el-form-item label="留言标题:" :label-width="formLabelWidth" prop="title" class="custom-align-right">
-                            <el-input v-model="form.title" autocomplete="off" placeholder="请输入留言标题" :disabled="pageMode == 'view'"></el-input>
+                            <el-input v-model="form.title" autocomplete="off" placeholder="请输入留言标题" :disabled="pageMode == 'view' || isme == false"></el-input>
                         </el-form-item>
                         <el-form-item label="网站属性:" :label-width="formLabelWidth" prop="column_id" class="custom-align-right">
-                            <el-cascader v-model="form.column_id" :props="{ checkStrictly: true }" :options="website_column_arr" :disabled="pageMode == 'view'"></el-cascader>
+                            <el-cascader v-model="form.column_id" :props="{ checkStrictly: true }" :options="website_column_arr" :disabled="pageMode == 'view' || isme == false"></el-cascader>
                         </el-form-item>
-                        <el-form-item label="留言关键词:" class="custom-align-right" v-if="pageMode != 'view'">
+                        <el-form-item label="留言关键词:" class="custom-align-right" v-if="pageMode != 'view' && isme == true">
                             <template #label>
                                 <span class="askBox">
                                     留言关键词:
@@ -36,23 +36,23 @@
                                     </el-tooltip>
                                 </span>
                             </template>
-                            <el-input type="textarea" v-model="form.description" class="custom-textarea" placeholder="请输入留言描述" :disabled="pageMode == 'view'"></el-input>
+                            <el-input type="textarea" v-model="form.description" class="custom-textarea" placeholder="请输入留言描述" :disabled="pageMode == 'view' || isme == false"></el-input>
                         </el-form-item>
-                        <el-form-item label="留言内容:" prop="content" class="custom-align-right" v-if="pageMode == 'add' || pageMode == 'edit'">
+                        <el-form-item label="留言内容:" prop="content" class="custom-align-right" v-if="pageMode == 'add' || pageMode == 'edit' && isme == true">
                             <myEditor ref="myEditor" v-model="form.content"></myEditor>
                         </el-form-item>
                         <el-form-item label="留言内容:" prop="content" class="custom-align-right" v-else>
                             <div v-html="form.content" class="contentBox"></div>
                         </el-form-item>
                     </div>
-                    <div v-if="creatNews_user_type == 10000 && pageMode != 'view' && pageName == 'messageList'">
+                    <div v-if="pageMode != 'view' && pageName == 'messageList'">
                         <el-form-item label="回复:" :label-width="formLabelWidth" class="custom-align-right">
-                            <el-input type="textarea" v-model="form.reply" class="custom-textarea" placeholder="请输入回复"></el-input>
+                            <el-input type="textarea" v-model="form.reply" class="custom-textarea" placeholder="请输入回复" :disabled="creatNews_user_type!=10000"></el-input>
                         </el-form-item>
                     </div>
-                    <div v-if="creatNews_user_type != 10000 && pageMode == 'view'">
+                    <div v-if="pageMode == 'view'">
                         <el-form-item label="回复:" :label-width="formLabelWidth" class="custom-align-right">
-                            <el-input type="textarea" v-model="form.reply" class="custom-textarea" placeholder="暂无回复" disabled="disabled"></el-input>
+                            <el-input type="textarea" v-model="form.reply" class="custom-textarea" placeholder="暂无回复" :disabled="creatNews_user_type!=10000"></el-input>
                         </el-form-item>
                     </div>
                 </div>
@@ -61,7 +61,8 @@
         <div class="bottomBtnBox">
             <el-button type="info" @click="returnPage">返回</el-button>
             <el-button type="primary" @click="addToServe" v-if="pageMode == 'add'">确定</el-button>
-            <el-button type="primary" @click="editToServe" v-if="pageMode == 'edit'">编辑</el-button>
+            <!--管理员编辑-->
+            <el-button type="primary" @click="editToServe">编辑</el-button>
         </div>
     </div>
 </template>
@@ -100,6 +101,7 @@ export default {
         }
         let self = this;
         return {
+            isme:false,//是否是自己发布的
             pageMode: 'add',//页面模式 add=新建 edit=编辑 view=查看
             pageName: 'messageReviewList',//页面名称
             formLabelWidth: '120px',
@@ -174,7 +176,7 @@ export default {
                 }
             })
         },
-        //编辑表单
+        //管理员编辑表单
         editToServe() {
             console.log(this.form)
             //表单验证
@@ -218,13 +220,22 @@ export default {
         getMainData(id) {
             this.$store.dispatch('news/getMessageInfo',{id:id}).then(res => {
                 if(res.code == 200) {
-                   this.form.column_id = res.data.column_arr_id;
-                   this.form.title = res.data.title;
-                   this.form.keyword = res.data.keyword;
-                   this.form.description = res.data.description;
-                   this.form.content = res.data.content;
-                   this.form.reply = res.data.reply;
-                   this.tags = res.data.keyword.split(',');
+                    this.form.column_id = res.data.column_arr_id;
+                    this.form.title = res.data.title;
+                    this.form.keyword = res.data.keyword;
+                    this.form.description = res.data.description;
+                    setTimeout(() => {
+                        this.form.content = res.data.content;
+                    }, 100);
+                    this.form.reply = res.data.reply;
+                    this.tags = res.data.keyword.split(',');
+                    
+                    //判断当前的留言是否是自己发布的
+                    if(res.data.user_id == this.$store.state.user.userid) {
+                        this.isme = true;
+                    } else {
+                        this.isme = false;
+                    }
                 } else {
                     this.$message.error(res.message);
                 }

+ 24 - 13
src/views/news/messageList.vue

@@ -53,10 +53,13 @@
                                         <i class="el-icon-refresh-left"></i>撤回 
                                     </div>
                                     <!--非管理员且该留言已通过申请,则无法再次编辑-->
-                                    <div class="listMainBtn" @click="getDataMain(scope.row.id)" v-if="creatNews_user_type != 10000 && scope.row.status == 1">
+                                    <div class="listMainBtn" @click="getDataMain(scope.row.id)" v-if="creatNews_user_type != 10000 && scope.row.is_update == 0">
                                         <i class="el-icon-view"></i>查看
                                     </div>
-                                    <div class="listEditBtn" @click="gotoEdit(scope.row.id)" v-if="creatNews_user_type == 10000 && scope.row.status == 1">
+                                    <div class="listEditBtn" @click="gotoEdit(scope.row.id)" v-if="creatNews_user_type != 10000 && scope.row.is_update == 1">
+                                        <i class="el-icon-edit-outline"></i>编辑
+                                    </div>
+                                    <div class="listEditBtn" @click="gotoEdit(scope.row.id)" v-if="creatNews_user_type == 10000">
                                         <i class="el-icon-edit-outline"></i>编辑
                                     </div>
                                 </div>
@@ -100,6 +103,7 @@ export default {
             tableDivTitle: "留言列表",
             tableData: [],//内容
             getApiData: {
+                website_id:0,//站点id
                 is_master: 1,//是否为审核列表 0=待审核列表 1=已审核列表
                 title: "",//留言标题
                 page: 1,//当前是第几页
@@ -154,37 +158,42 @@ export default {
             }).catch(() => {
                 this.$message({
                     type: 'warning',
-                    message: '已取消删除'
+                    message: '已取消删除操作!'
                 });
             });
         },
         //1.3 拒绝消息
         upData(id) {
             //拒绝消息
-            this.$prompt('请输入拒绝理由', '撤回', {
+            this.$confirm('此操作将撤回该条数据至待审核列表, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
-                inputPlaceholder: '请输入拒绝理由',
-                inputPattern: /\S+/, // 匹配非空内容(至少一个非空白字符)
-                inputErrorMessage: '拒绝理由不能为空'
-            }).then(({ value }) => {
+                type: 'warning'
+            }).then(() => {
+                console.log("当前撤回:" + id)
                 let data = {
                     id:id,
-                    status:2,
-                    reason:value
+                    status:0,
+                    reason:""
                 }
                 this.$store.dispatch('news/upMessageStatus', data).then(res => {
                     if(res.code == 200) {
                         this.$message({
                             type: 'success',
-                            message: '已撤回该留言'
+                            message: '撤回成功!'
                         });
-                        this.getData();
                     } else {
                         this.$message.error(res.message);
                     }
+                    this.getData();
                 })
-            })
+            }).catch(() => {
+                this.$message({
+                    type: 'warning',
+                    message: '已取消撤回操作!'
+                });
+            });
+            
         },
         //1.4 列表内容分页
         handleSizeChange(val) {
@@ -245,6 +254,8 @@ export default {
         this.getData();
         //1.获得用户身份
         this.creatNews_user_type = getUseType()
+        //2.获得站点id
+        this.getApiData.website_id = getWebSiteId();
     },
 }
 </script>

+ 34 - 0
src/views/news/messageReviewList.vue

@@ -54,6 +54,9 @@
                                     <div class="listMainBtn" @click="editData(scope.row.id)" v-if="creatNews_user_type==10000">
                                         <i class="el-icon-check"></i>审核
                                     </div>
+                                    <div class="listRefuseBtn" @click="refuseData(scope.row.id)" v-if="creatNews_user_type==10000">
+                                        <i class="el-icon-close"></i>拒绝
+                                    </div>
                                     <div class="listDeleteBtn" @click="deleteData(scope.row.id)">
                                         <i class="el-icon-delete"></i>删除
                                     </div>
@@ -102,6 +105,7 @@ export default {
             tableDivTitle: "留言列表",
             tableData: [],//内容
             getApiData: {
+                website_id: 0,
                 is_master: "0",//是否为审核列表 0=待审核列表 1=已审核列表
                 title: "",//留言标题
                 page: 1,//当前是第几页
@@ -189,6 +193,32 @@ export default {
                 });
             });
         },
+        refuseData(id){
+            this.$prompt('请输入拒绝理由', '拒绝', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                inputPlaceholder: '请输入拒绝理由',
+                inputPattern: /\S+/, // 匹配非空内容(至少一个非空白字符)
+                inputErrorMessage: '拒绝理由不能为空'
+            }).then(({ value }) => {
+                let data = {
+                    id:id,
+                    status:2,
+                    reason:value
+                }
+                this.$store.dispatch('news/upMessageStatus', data).then(res => {
+                    if(res.code == 200) {
+                        this.$message({
+                            type: 'success',
+                            message: '已拒绝该留言!'
+                        });
+                        this.getData();
+                    } else {
+                        this.$message.error(res.message);
+                    }
+                })
+            })
+        },
         //1.3 列表内容分页
         handleSizeChange(val) {
             this.getApiData.page = val;
@@ -240,6 +270,10 @@ export default {
         this.getData();
         //1.获得用户身份
         this.creatNews_user_type = getUseType()
+        //2.获得站点id
+        this.getApiData.website_id = getWebSiteId();
+        //3.获得页面操作方式
+        this.behavior = this.$route.query.behavior;
     },
 }
 </script>