From 4641a877cd6a94e4d35dca7f7f14bc1443e2d2ad Mon Sep 17 00:00:00 2001
From: luobisheng <727299681@qq.com>
Date: 星期二, 29 十一月 2022 17:59:55 +0800
Subject: [PATCH] 上传处置类型修改

---
 src/views/operate/message/myIndex/update/index.vue |  334 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 211 insertions(+), 123 deletions(-)

diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue
index 6d16c02..9ea2741 100644
--- a/src/views/operate/message/myIndex/update/index.vue
+++ b/src/views/operate/message/myIndex/update/index.vue
@@ -2,42 +2,74 @@
   <div class="createUser">
     <main>
       <div class="mainContent">
-        <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules"
-                 label-position="right">
+        <el-form
+          ref="user"
+          label-width="140px"
+          autoComplete="on"
+          :model="role"
+          :rules="createRoleRules"
+          label-position="right"
+          :disabled="edit"
+        >
           <!-- 鎻愰啋鏂瑰紡 -->
-          <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode">
+          <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" >
             <el-radio-group v-model="role.channelCode">
               <el-radio label="01">绔欏唴淇�</el-radio>
-              <el-radio label="02">閭欢</el-radio>
+              <el-radio label="03">閭欢</el-radio>
             </el-radio-group>
             <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span>
           </el-form-item>
           <!-- 娑堟伅鏍忕洰 -->
-          <el-form-item v-if="role.channelCode === '01'" class="optionItem" label="娑堟伅鏍忕洰:" prop="messageType">
+          <el-form-item
+            v-if="role.channelCode === '01'"
+            class="optionItem"
+            label="娑堟伅鏍忕洰:"
+            prop="messageType"
+          >
             <div class="message-item">
               <div class="message-item__left">
-                <el-select v-model="role.messageType" placeholder="璇烽�夋嫨娑堟伅鏍忕洰">
-                  <el-option v-for="item in colList" :key="item.id" :label="item.columnName"
-                             :value="item.id">
+                <el-select
+                  v-model="role.messageType"
+                  placeholder="璇烽�夋嫨娑堟伅鏍忕洰"
+                >
+                  <el-option
+                    v-for="item in colList"
+                    :key="item.id"
+                    :label="item.columnName"
+                    :value="item.id"
+                  >
                   </el-option>
                 </el-select>
               </div>
-              <span class="message-add" @click='dialogCreate = true'> 娣诲姞鏍忕洰</span>
+              <span class="message-add" @click="dialogCreate = true">
+                娣诲姞鏍忕洰</span
+              >
             </div>
           </el-form-item>
           <!-- 娑堟伅鏍囬 -->
           <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head">
             <div class="message-item__left">
-              <el-input v-model="role.head" placeholder="璇烽�夋嫨娑堟伅鏍囬"></el-input>
+              <el-input
+                v-model="role.head"
+                placeholder="璇烽�夋嫨娑堟伅鏍囬"
+              ></el-input>
             </div>
           </el-form-item>
           <!-- 鎺ユ敹瀵硅薄 -->
           <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo">
             <div class="message-item__left">
-              <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄" >
+              <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹瀵硅薄">
                 <el-option :value="role.targetTo">
-                  <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox
-                           @check="handleCheck" default-expand-all node-key="id">
+                  <el-tree
+                    ref="tree"
+                    :data="departList"
+                    :props="defaultProps"
+                    show-checkbox
+                    @check="handleCheck"
+                    default-expand-all
+                    :default-checked-keys="checkedList"
+                    node-key="id"
+                  >
                   </el-tree>
                 </el-option>
               </el-select>
@@ -45,108 +77,164 @@
           </el-form-item>
           <!-- 娑堟伅鍐呭 -->
           <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body">
-            <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor>
+            <MyEditor ref="edit"></MyEditor>
           </el-form-item>
           <el-form-item>
             <div class="optionBtn">
-              <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨
+              <el-button
+                type="primary"
+                @click.native.prevent="handleSubmit(0)"
+                class="btn save"
+                v-if="this.type=='update'||this.type=='create'"
+                >淇濆瓨
               </el-button>
-              <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷
+              <el-button
+                type="primary"
+                @click.native.prevent="handleSubmit(1)"
+                class="btn submit"
+                v-if="this.type=='update'||this.type=='create'"
+                >鍙戝竷
               </el-button>
-              <el-button type="primary" @click.native.prevent="handleView" class="btn submit">棰勮
+              <el-button
+                type="primary"
+                @click.native.prevent="handleView"
+                class="btn submit"
+                v-if="this.type=='update'||this.type=='create'"
+                >棰勮
               </el-button>
-              <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button>
+              <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="this.type=='update'||this.type=='create'"
+                >閲嶇疆</el-button
+              >
             </div>
           </el-form-item>
         </el-form>
         <!-- 鏂板鏍忕洰 -->
-        <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%"
-                   :before-close="handleConfirmClose" append-to-body>
+        <el-dialog
+          title="娣诲姞鏍忕洰"
+          :visible.sync="dialogCreate"
+          v-if="dialogCreate"
+          width="60%"
+          :before-close="handleConfirmClose"
+          append-to-body
+        >
           <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd>
         </el-dialog>
         <!-- 棰勮娑堟伅 -->
-        <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%"
-                   :before-close="handleConfirmClose" append-to-body>
-          <MyColView  :info="info" @closeDialog="closeDialog"></MyColView>
+        <el-dialog
+          title="娑堟伅棰勮"
+          :visible.sync="dialogView"
+          v-if="dialogView"
+          width="60%"
+          :before-close="handleConfirmClose"
+          append-to-body
+        >
+          <MyColView :info="info" @closeDialog="closeDialog"></MyColView>
         </el-dialog>
       </div>
     </main>
   </div>
 </template>
 <script>
-import MyEditor from '@/components/edit'
-import MyColumnAdd from '@/views/operate/message/mycontrol/createUser'
-import MyColView from '../messageView'
-import { sendMessage, updateMessage } from "@/api/operate/messageManagement";
+import MyEditor from "@/components/edit";
+import MyColumnAdd from "@/views/operate/message/mycontrol/createUser";
+import MyColView from "../messageView";
+import { sendMessage, updateMessage, getMessageById } from "@/api/operate/messageManagement";
 
 export default {
   components: { MyEditor, MyColumnAdd, MyColView },
-  props: ['type', 'myDataRow'],
+  props: ["type", "myDataRow"],
   data() {
+    const validateEditor = (rule, value, callback) => {
+      if (value) {
+        callback();
+      } else {
+        callback(new Error('璇疯緭鍏�'));
+      }
+    };
     return {
       role: {
-        messageType: '',
-        head: '',
-        targetTo: '',
-        targetFrom: null,
-        body: '',
-        channelCode: '01',
+        messageType: null,
+        head: "",
+        targetTo: "",
+        body: "",
+        channelCode: null,
       },
       createRoleRules: {
         messageType: [
-          { required: true, trigger: ['blur', 'change'], message: '璇疯緭鍏ユ秷鎭爮鐩�' },
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇疯緭鍏ユ秷鎭爮鐩�",
+          },
         ],
-        head: [
-          { required: true, trigger: "blur", message: '璇烽�夋嫨娑堟伅鏍囬'}
-        ],
+        head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }],
         targetTo: [
-          { required: true, trigger: "blur", message: '璇烽�夋嫨鎺ュ彈瀵硅薄' },
+          { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" },
         ],
         body: [
-          { required: true, trigger: ['blue','change'], message: '璇疯緭鍏ユ秷鎭唴瀹�' }
-        ]
+          {
+            required: true,
+            validator: validateEditor
+          },
+        ],
       },
+      edit: false,
       colList: [],
       departList: [],
       typeList: [],
       dialogCreate: false,
       dialogView: false,
       defaultProps: {
-        children: 'children',
-        label: 'departName'
+        children: "children",
+        label: "departName",
       },
       checkedList: [],
       tempNameArr: [],
       info: {},
-      sendUser: ''
-    }
+      sendUser: "",
+    };
   },
   created() {
     this.getColumnList();
     this.getDepartList();
     this.getLoginUserInfo();
-    if (this.type === 'update' && this.myDataRow) {
-      this.role = this.myDataRow;
+    if(this.type=="view"){
+      this.edit=true;
     }
+    if (this.type !== "create" && this.myDataRow) {
+      getMessageById(this.myDataRow.id)
+          .then(res => {
+            this.role = res;
+            if (res.targetTo) {
+              this.checkedList = res.targetTo.split(',');
+              this.role.targetTo = `${this.checkedList}浜篳;
+            }
+          })
+          .catch(err => this.$message.error(`${err}`))
+    }
+  },
+  mounted() {
+    if (this.type !== 'create') {
+      this.$refs.edit.editor.txt.append(this.myDataRow.body);
+    }
+    
   },
   methods: {
     // 鍏抽棴寮圭獥
     handleConfirmClose(done) {
-      this.$confirm('纭鍏抽棴?')
-          .then(_ => {
-            done();
-          })
+      this.$confirm("纭鍏抽棴?").then((_) => {
+        done();
+      });
     },
 
     // 鑾峰彇鏍忕洰
     async getColumnList() {
       await this.$axios({
-        method: 'get',
-        url: 'sccg/message_column/getAllColumn'
-      })
-          .then(res => {
-            this.colList = res.data;
-          })
+        method: "get",
+        url: "sccg/message_column/getShowColumn",
+      }).then((res) => {
+        this.colList = res.data;
+      });
     },
     // 鍏抽棴寮圭獥
     closeDialog({ flag, index }) {
@@ -156,34 +244,35 @@
         this.getColumnList();
       }
     },
-
+    getType(){
+      return this.type;
+    },
     // 鑾峰彇閮ㄩ棬鏍�
     async getDepartList() {
       await this.$axios({
-        method: 'get',
-        url: 'sccg/depart/tree'
-      })
-          .then(res => {
-            res.data.forEach(item => {
-              this.departList.push(this.setChildren(item));
-            });
-          })
+        method: "get",
+        url: "sccg/depart/tree",
+      }).then((res) => {
+        res.data.forEach((item) => {
+          this.departList.push(this.setChildren(item));
+        });
+      });
     },
 
     // 閫掑綊children
     setChildren(obj) {
       if (obj.children !== null) {
         if (obj.children.length !== 0) {
-          obj.children.forEach(item => {
+          obj.children.forEach((item) => {
             return this.setChildren(item);
-          })
+          });
         }
       } else {
         if (obj.userInfoDTOS.length !== 0) {
           obj.children = [];
-          obj.userInfoDTOS.forEach(item => {
-            obj.children.push({ id: item.userId, departName: item.username })
-          })
+          obj.userInfoDTOS.forEach((item) => {
+            obj.children.push({ id: item.userId, departName: item.username });
+          });
         }
       }
       return obj;
@@ -191,78 +280,82 @@
 
     // 閫変腑id
     handleCheck(data, node) {
-      node.checkedNodes.forEach(item => {
-        if(!item.hasOwnProperty('departType')){
-          this.checkedList.push(item.id)
-          this.tempNameArr.push(item.departName)
-        }
-      })
-      this.role.targetTo = this.checkedList.length + '浜�'
+      const checkedNodes = node.checkedNodes.filter(item => !item.children);
+      this.checkedList = checkedNodes.map(item => item.id);
+      this.tempNameArr = checkedNodes.map(item => item.departName);
+      this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null;
     },
 
     // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅)
     handleSubmit(mystatus) {
+      this.role.body = this.$refs.edit.editor.txt.html();
       this.$refs.user.validate((valid) => {
         if (valid) {
-          const { body, head, messageType, targetFrom, channelCode } = this.role;
+          const { body, head, messageType, channelCode } = this.role;
           const params = {
             body,
             head,
             messageType,
             channelCode: `${channelCode}`,
             sendTime: new Date(),
-            targetTo: this.checkedList.join(','),
-            targetFrom: `${targetFrom}`,
+            targetTo: this.checkedList.join(","),
             status: mystatus,
+          };
+          if (this.role.channelCode === '03') {
+            delete params.messageType;
           }
-          if (this.type === 'create') {
+          if (this.type === "create") {
             sendMessage(params)
-                .then(() => {
-                  this.$emit('closeMyDialog');
-                  this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
                 })
-                .catch(err => this.$message({ type: 'error', message: err }));
+              );
           } else {
-            updateMessage(params)
-                .then(() => {
-                  this.$emit('closeMyDialog');
-                  this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+            updateMessage({ id: this.myDataRow.id, ...params })
+              .then(() => {
+                this.$emit("closeMyDialog");
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+              })
+              .catch((err) =>
+                this.$message({
+                  type: "error",
+                  message: err.data || err.message,
                 })
-                .catch(err => this.$message({ type: 'error', message: err }));
+              );
           }
         } else {
-          this.$message.error({ type: 'warning', message: '璇锋鏌ュ繀濉」' });
+          this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" });
         }
-      })
-    },
-
-    // 鑾峰緱娑堟伅浣�
-    getMyBody(obj) {
-      this.role.body = obj;
+      });
     },
 
     // 閲嶇疆琛ㄥ崟
     handleReset() {
       this.$refs.edit.editor.txt.clear();
-      this.setDepartList();
       this.$refs.user.resetFields();
     },
 
     // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
     getLoginUserInfo() {
-      const name = sessionStorage.getItem('name');
+      const name = sessionStorage.getItem("name");
       this.$axios({
-        method: 'get',
-        url: 'sccg/admin/info?name=' + name,
-      })
-          .then(res => {
-            this.role.targetFrom = res.data.userId
-            this.sendUser = res.data.username
-          })
+        method: "get",
+        url: "sccg/admin/info?name=" + name,
+      }).then((res) => {
+        this.role.targetFrom = res.data.userId;
+        this.sendUser = res.data.username;
+      });
     },
 
     // 娑堟伅棰勮
     handleView() {
+      this.role.body = this.$refs.edit.editor.txt.html();
       this.$refs.user.validate((valid) => {
         if (valid) {
           const { body, head, channelCode } = this.role;
@@ -270,27 +363,23 @@
           this.info = {
             body,
             head,
-            channelCode: channelCode === '01'? '绔欏唴淇�': channelCode === '02' ? '閭欢':'鐭俊',
-            messageType: this.getColText(this.role.messageType),
+            channelCode:
+              channelCode === "01"
+                ? "绔欏唴淇�"
+                : channelCode === "03"
+                ? "閭欢"
+                : "鐭俊",
+            messageType: this.role.messageType,
             targetTo: this.tempNameArr,
             targetFrom: this.sendUser
-          }
+          };
         } else {
-          this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' });
+          this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" });
         }
-      })
-    },
-
-    // 鑾峰緱鏍忕洰娑堟伅
-    getColText(id){
-      let str = ''
-      this.colList.forEach(item=>{
-        item.id === id ? str = item.columnName : ''
-      })
-      return str;
+      });
     }
   },
-}
+};
 </script>
 <style lang="scss" scoped>
 .createUser {
@@ -388,7 +477,6 @@
           padding: 12px 50px;
         }
       }
-
     }
   }
 }

--
Gitblit v1.8.0