ソースを参照

Merge branch 'sit' of daiyanrong/devCould-ui-pc into master

戴艳蓉 3 年 前
コミット
dbc37fb536

ファイルの差分が大きいため隠しています
+ 0 - 0
dist/index.html


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/css/chunk-20946908.c9f02c8b.css


BIN
dist/static/css/chunk-20946908.c9f02c8b.css.gz


BIN
dist/static/css/chunk-491109e0.523768de.css.gz


BIN
dist/static/js/app.41140721.js.gz


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/app.de17dfb5.js


BIN
dist/static/js/app.de17dfb5.js.gz


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/chunk-20946908.baa14bd9.js


BIN
dist/static/js/chunk-20946908.baa14bd9.js.gz


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/chunk-491109e0.6249fe3b.js


BIN
dist/static/js/chunk-491109e0.6249fe3b.js.gz


+ 3 - 1
src/apis/service/purchaseAndSale/adjust/index.js

@@ -25,5 +25,7 @@ export default {
   // 获取处理人列表
   MUser: (data, params) => http(api + 'manangelist', data, 'post', params),
   // 获取处理人列表
-  MUpdate: (data, params) => http(api + 'manangecreate', data, 'post', params)
+  MUpdate: (data, params) => http(api + 'manangecreate', data, 'post', params),
+  // 操作记录
+  MLogList: (data, params) => http(api + 'manangeloglist', data, 'post', params)
 }

+ 9 - 10
src/components/Tinymce/index.vue

@@ -120,7 +120,6 @@ export default {
       const _this = this;
       window.tinymce.init({
         selector: `#${this.tinymceId}`,
-
         content_style:
           "html,body { width: 100%;height: 100%;position: relative; background: transparent;padding:0;margin: 0;box-sizing: border-box;} body{padding:16px} p{margin:0;line-height:40px} img{ display: inline-block;}",
         language: this.languageTypeList["zh"],
@@ -147,7 +146,7 @@ export default {
             editor.setContent(_this.value);
           }
           _this.hasInit = true;
-          editor.on("NodeChange Change KeyUp SetContent", () => {
+          editor.on("NodeChange Change KeyUp SetContent", () => { //节点更改密钥设置内容
             this.hasChange = true;
             this.$emit("input", editor.getContent());
           });
@@ -177,7 +176,7 @@ export default {
         //   return img
         // },
         images_upload_handler(blobInfo, success, failure, progress) {
-          console.log(blobInfo.blob());
+          // console.log(blobInfo.blob());
           // console.log(success);
           // console.log(failure);
           // console.log(progress);
@@ -241,13 +240,13 @@ export default {
     getContent() {
       window.tinymce.get(this.tinymceId).getContent();
     },
-    imageSuccessCBK(arr) {
-      arr.forEach((v) =>
-        window.tinymce
-          .get(this.tinymceId)
-          .insertContent(`<img class="wscnph" src="${v.url}" >`)
-      );
-    },
+    // imageSuccessCBK(arr) {
+    //   arr.forEach((v) =>
+    //     window.tinymce
+    //       .get(this.tinymceId)
+    //       .insertContent(`<img class="wscnph" src="${v.url}" >`)
+    //   );
+    // },
   },
 };
 </script>

+ 7 - 10
src/views/purchaseAndSale/adjust/addEdit.vue

@@ -80,6 +80,7 @@ import asyncRequest from "@/apis/service/purchaseAndSale/adjust";
 import resToken from "@/mixins/resToken";
 import Tinymce from "@/components/Tinymce";
 import { platformType } from "./columns";
+import contrastModelVue from "./contrastModel.vue";
 export default {
   name: "adjust",
   props: ["showModel", "id", "isDetail", "sitem"],
@@ -156,17 +157,10 @@ export default {
           this.$refs.ruleForm.clearValidate();
 
           this.ruleForm = {
-            title: "我是一个标题", // 账号
+            title: "", // 账号
             company_type: platformType,
             model_id: [], // 功能区
-            remark: `<h4>【故障现象描述:】</h4>
-       <p style="font-size:12px">
-       必填 Ctrl+V粘贴截图
-       </p>
-      <h4>【期望结果描述:】</h4>
-      <p style="font-size:12px">
-        必填 Ctrl+V粘贴截图
-      </p>`,
+            remark: `<h4>【故障现象描述:】</h4>\n<p style="font-size: 12px;">必填 Ctrl+V粘贴截图</p>\n<h4>【期望结果描述:】</h4>\n<p style="font-size: 12px;">必填 Ctrl+V粘贴截图</p>`,
           };
         }
       });
@@ -180,7 +174,10 @@ export default {
         if (valid) {
           this.loading = true;
           let model = JSON.parse(JSON.stringify(this.ruleForm));
-          // model.model_id = model.model_id.toString();
+          let remark = model.remark;
+          remark = remark.replace(/\n/g, "");
+          remark = remark.replace(/"/g, "'");
+          model.remark = remark;
           let length = 5000;
           if (model.remark.length > length) {
             this.$message.warning("描述文字及标签总长度不能超过5000!");

+ 11 - 16
src/views/purchaseAndSale/adjust/columns.js

@@ -173,9 +173,9 @@ const columnsDeploy = [
 ]
  const recordList=[
   {
-    prop: "order_code",
+    prop: "id",
     label: "编号",
-    width: "70",
+    width: "60",
   },
   {
     prop: "addtime",
@@ -183,37 +183,32 @@ const columnsDeploy = [
     width: "140",
   },
   {
-    prop: "process_name",
+    prop: "action_name",
     label: "操作人",
     width: "70",
   },
   {
-    prop: "order_type",
+    prop: "type_name",
     label: "操作类型",
     width: "70",
   },
 
   {
-    prop: "apply_name",
+    prop: "handle_name",
     label: "操作字段",
-    width: "70",
+    width: "90",
   },
   {
-    prop: "action_name",
+    prop: "action_item",
     label: "操作前",
+    _slot_: "action_item",
   },
   {
-    prop: "order_process",
+    prop: "action_after",
     label: "操作后",
+    _slot_: "action_after",
   },
-  {
-    prop: "",
-    label: "操作",
-    fixed: "right",
-    _noset_: true,
-    _slot_: "operation",
-    width: "50",
-  },
+ 
 ]
 const platformType='1'
 export {

+ 198 - 144
src/views/purchaseAndSale/adjust/contrastModel.vue

@@ -15,26 +15,26 @@
   >
     <el-card style="margin-top: -20px">
       <el-row :gutter="10">
-        <el-col :span="24" class="clear">
-          <div class="fl"><span>操作人:</span><span></span></div>
-          <div class="fr">
-            <span class="s">&nbsp;</span><span>表示相同的点</span>
+        <el-col
+          :span="24"
+          class="clear"
+          style="line-height: 28px; height: 28px; font-size: 15px;margin:0 0 10px 0"
+        >
+          <div class="fl">
+            <span>操作人:</span
+            ><span v-if="sitem">{{ sitem.action_name }}</span>
           </div>
-        </el-col>
-        <el-col :span="24" class="clear">
-          <span>操作时间:</span><span></span>
           <div class="fr">
-            <span class="w">&nbsp;</span><span>表示不同的点</span>
+            <span>操作时间:</span><span v-if="sitem">{{ sitem.addtime }}</span>
           </div>
         </el-col>
         <el-col :span="12">
-          <div class="contrast-title">操作前</div>
-          <div class="contrast-main" v-html="x"></div>
+          <div class="contrast-title" style="margin:0 0 10px 0">操作前:</div>
+          <div class="contrast-main" style="line-height: 25px;max-height:480px;height:100%;overflow-y: scroll;" v-html="x"></div>
         </el-col>
         <el-col :span="12">
-          <div class="contrast-title">操作前</div>
-          <div class="contrast-main" v-html="y">
-          </div>
+          <div class="contrast-title" style="margin:0 0 10px 0">操作后:</div>
+          <div class="contrast-main"  style="line-height: 25px;max-height:480px;height:100%;overflow-y: scroll;" v-html="y"></div>
         </el-col>
       </el-row>
     </el-card>
@@ -43,13 +43,9 @@
 <script>
 export default {
   name: "contrastModel",
-  props: ["showModel", "id",  "sitem"],
+  props: ["showModel", "id", "sitem"],
   data() {
     return {
-      a: "作为一个软 阿大幅度 让我无法惹我 !",
-      b: "作为一个软 阿大幅度 234324324 让我无法惹我",
-      x: "",
-      y: "",
       loading: true,
       showModelThis: this.showModel,
     };
@@ -71,146 +67,204 @@ export default {
   methods: {
     async initForm() {
       this.loading = true;
-      function StringBuffer() {
-        this.__strings__ = [];
-      }
-      StringBuffer.prototype.append = function (str) {
-        this.__strings__.push(str);
-        return this;
-      };
-      //格式化字符串
-      StringBuffer.prototype.appendFormat = function (str) {
-        for (var i = 1; i < arguments.length; i++) {
-          var parent = "\\{" + (i - 1) + "\\}";
-          var reg = new RegExp(parent, "g");
-          str = str.replace(reg, arguments[i]);
-        }
+      const { action_item, action_after } = this.sitem;
+      // function htmlStringToArray(str) {
+      //   var temp = document.createElement("iframe");
+      //   temp.style.display = "none";
+      //   document.body.appendChild(temp);
+      //   var doc = temp.contentWindow.document;
+      //   doc.open();
+      //   doc.write(str);
+      //   doc.close();
 
-        this.__strings__.push(str);
-        return this;
-      };
-      StringBuffer.prototype.toString = function () {
-        return this.__strings__.join("");
-      };
-      StringBuffer.prototype.clear = function () {
-        this.__strings__ = [];
-      };
-      StringBuffer.prototype.size = function () {
-        return this.__strings__.length;
-      };
+      //   var array = htmlNodeToArray(doc.documentElement);
+      //   temp.parentNode.removeChild(temp);
+      //   return array;
+      // }
 
-      var flag = 1;
+      // function htmlNodeToArray(node) {
+      //   if (node.nodeType == 1) {
+      //     var array = [node.tagName];
+      //     if (node.childNodes.length) {
+      //       for (var i = 0, child; (child = node.childNodes[i]); i++) {
+      //         if (child.nodeType == 1 || child.nodeType == 3) {
+      //           array.push(htmlNodeToArray(child));
+      //         }
+      //       }
+      //     } else if (node.innerText) {
+      //       array.push([node.innerText]);
+      //     }
+      //     return array;
+      //   } else if (node.nodeType == 3) {
+      //     return [node.nodeValue];
+      //   }
+      // }
+      // console.log(   htmlStringToArray(this.b));
 
-      function getHighLightDifferent(a, b) {
-        //console.log("输入:" + a);
-        //console.log("输入:" + b);
+      // this.matchHTML();
 
-        var temp = getDiffArray(a, b);
-        var a1 = getHighLight(a, temp[0]);
-        //console.log("输出:" + a1);
+      this.x = action_item;
+      this.y = action_after;
+      this.loading = false;
+    },
+    matchHTML() {
+      console.log(this.b);
+      // let pattern = /<\/?[a-zA-Z]+(\s+[a-zA-Z]+=".*")*>/g;
+      let pattern = /<[^>]+>/g;
+      // let pattern = /<(?:[^"'>]|"[^"]*"|'[^']*')*>/g;
+      //  let pattern = /<(?:[^"'>]|(["'])[^"']*\1)*>/g;
+      console.log(this.b.match(pattern));
+    },
+    // async initForm() {
+    //   this.loading = true;
+    //   const { action_item, action_after } = this.sitem;
+    //   this.a = action_item;
+    //   this.b = action_after;
+    //   function StringBuffer() {
+    //     this.__strings__ = [];
+    //   }
+    //   StringBuffer.prototype.append = function (str) {
+    //     this.__strings__.push(str);
+    //     return this;
+    //   };
+    //   //格式化字符串
+    //   StringBuffer.prototype.appendFormat = function (str) {
+    //     for (var i = 1; i < arguments.length; i++) {
+    //       var parent = "\\{" + (i - 1) + "\\}";
+    //       var reg = new RegExp(parent, "g");
+    //       str = str.replace(reg, arguments[i]);
+    //     }
 
-        var a2 = getHighLight(b, temp[1]);
-        //console.log("输出:" + a2);
-        //console.log(flag);
-        return new Array(a1, a2);
-      }
+    //     this.__strings__.push(str);
+    //     return this;
+    //   };
+    //   StringBuffer.prototype.toString = function () {
+    //     return this.__strings__.join("");
+    //   };
+    //   StringBuffer.prototype.clear = function () {
+    //     this.__strings__ = [];
+    //   };
+    //   StringBuffer.prototype.size = function () {
+    //     return this.__strings__.length;
+    //   };
 
-      function getHighLight(source, temp) {
-        var result = new StringBuffer();
-        var sourceChars = source.split("");
-        var tempChars = temp.split("");
-        var flag = false;
-        for (var i = 0; i < sourceChars.length; i++) {
-          if (tempChars[i] != " ") {
-            if (i == 0) {
-              result.append("<span style='color:blue'>");
-              result.append(sourceChars[i]);
-            } else if (flag) {
-              result.append(sourceChars[i]);
-            } else {
-              result.append("<span style='color:blue'>");
-              result.append(sourceChars[i]);
-            }
-            flag = true;
-            if (i == sourceChars.length - 1) {
-              result.append("</span>");
-            }
-          } else if (flag == true) {
-            result.append("</span>");
-            result.append(sourceChars[i]);
-            flag = false;
-          } else {
-            result.append(sourceChars[i]);
-          }
-        }
-        return result.toString();
-      }
+    //   var flag = 1;
 
-      function getDiffArray(a, b) {
-        var result = new Array();
-        //选取长度较小的字符串用来穷举子串
-        if (a.length < b.length) {
-          var start = 0;
-          var end = a.length;
-          result = getDiff(a, b, start, end);
-        } else {
-          var start = 0;
-          var end = b.length;
-          result = getDiff(b, a, 0, b.length);
-          result = new Array(result[1], result[0]);
-        }
-        return result;
-      }
+    //   function getHighLightDifferent(a, b) {
+    //     //console.log("输入:" + a);
+    //     //console.log("输入:" + b);
 
-      //将a的指定部分与b进行比较生成比对结果
-      function getDiff(a, b, start, end) {
-        var result = new Array(a, b);
-        var len = result[0].length;
-        while (len > 0) {
-          for (var i = start; i < end - len + 1; i++) {
-            var sub = result[0].substring(i, i + len);
-            var idx = -1;
-            if ((idx = result[1].indexOf(sub)) != -1) {
-              result[0] = setEmpty(result[0], i, i + len);
-              result[1] = setEmpty(result[1], idx, idx + len);
-              if (i > 0) {
-                //递归获取空白区域左边差异
-                result = getDiff(result[0], result[1], start, i);
-              }
-              if (i + len < end) {
-                //递归获取空白区域右边差异
-                result = getDiff(result[0], result[1], i + len, end);
-              }
-              len = 0; //退出while循环
-              break;
-            }
-          }
-          len = parseInt(len / 2);
-          //len = len - 1;
-          //console.log(len);
-        }
-        //console.log(result.join(""));
-        return result;
-      }
+    //     var temp = getDiffArray(a, b);
+    //     var a1 = getHighLight(a, temp[0]);
+    //     //console.log("输出:" + a1);
 
-      //将字符串s指定的区域设置成空格
-      function setEmpty(s, start, end) {
-        var array = s.split("");
-        for (var i = start; i < end; i++) {
-          array[i] = " ";
-        }
-        return array.join("");
-      }
-      let list = getHighLightDifferent(this.a, this.b);
-      this.x = list[0];
-      this.y = list[1];
-      this.loading = false;
-    },
+    //     var a2 = getHighLight(b, temp[1]);
+    //     //console.log("输出:" + a2);
+    //     //console.log(flag);
+    //     return new Array(a1, a2);
+    //   }
+
+    //   function getHighLight(source, temp) {
+    //     var result = new StringBuffer();
+    //     var sourceChars = source.split("");
+    //     var tempChars = temp.split("");
+    //     var flag = false;
+    //     for (var i = 0; i < sourceChars.length; i++) {
+    //       if (tempChars[i] != " ") {
+    //         if (i == 0) {
+    //           result.append("<span style='color:blue'>");
+    //           result.append(sourceChars[i]);
+    //         } else if (flag) {
+    //           result.append(sourceChars[i]);
+    //         } else {
+    //           result.append("<span style='color:blue'>");
+    //           result.append(sourceChars[i]);
+    //         }
+    //         flag = true;
+    //         if (i == sourceChars.length - 1) {
+    //           result.append("</span>");
+    //         }
+    //       } else if (flag == true) {
+    //         result.append("</span>");
+    //         result.append(sourceChars[i]);
+    //         flag = false;
+    //       } else {
+    //         result.append(sourceChars[i]);
+    //       }
+    //     }
+    //     return result.toString();
+    //   }
+
+    //   function getDiffArray(a, b) {
+    //     var result = new Array();
+    //     //选取长度较小的字符串用来穷举子串
+    //     if (a.length < b.length) {
+    //       var start = 0;
+    //       var end = a.length;
+    //       result = getDiff(a, b, start, end);
+    //     } else {
+    //       var start = 0;
+    //       var end = b.length;
+    //       result = getDiff(b, a, 0, b.length);
+    //       result = new Array(result[1], result[0]);
+    //     }
+    //     return result;
+    //   }
+
+    //   //将a的指定部分与b进行比较生成比对结果
+    //   function getDiff(a, b, start, end) {
+    //     var result = new Array(a, b);
+    //     var len = result[0].length;
+    //     while (len > 0) {
+    //       for (var i = start; i < end - len + 1; i++) {
+    //         var sub = result[0].substring(i, i + len);
+    //         var idx = -1;
+    //         if ((idx = result[1].indexOf(sub)) != -1) {
+    //           result[0] = setEmpty(result[0], i, i + len);
+    //           result[1] = setEmpty(result[1], idx, idx + len);
+    //           if (i > 0) {
+    //             //递归获取空白区域左边差异
+    //             result = getDiff(result[0], result[1], start, i);
+    //           }
+    //           if (i + len < end) {
+    //             //递归获取空白区域右边差异
+    //             result = getDiff(result[0], result[1], i + len, end);
+    //           }
+    //           len = 0; //退出while循环
+    //           break;
+    //         }
+    //       }
+    //       len = parseInt(len / 2);
+    //       //len = len - 1;
+    //       //console.log(len);
+    //     }
+    //     //console.log(result.join(""));
+    //     return result;
+    //   }
+
+    //   //将字符串s指定的区域设置成空格
+    //   function setEmpty(s, start, end) {
+    //     var array = s.split("");
+    //     for (var i = start; i < end; i++) {
+    //       array[i] = " ";
+    //     }
+    //     return array.join("");
+    //   }
+    //   let list = getHighLightDifferent(this.a, this.b);
+    //   this.x = list[0];
+    //   this.y = list[1];
+    //   // console.log(this.a);
+    //   // console.log(this.b);
+    //   // console.log(this.x);
+    //   // console.log(this.y);
+    //   this.loading = false;
+    // },
   },
 };
 </script>
 
    <style lang="scss" scoped>
 .account {
+  
 }
 </style>

+ 296 - 239
src/views/purchaseAndSale/adjust/detail.vue

@@ -1,250 +1,283 @@
 <template>
   <div class="adjustDetail pagePadding clear" v-loading="loading">
-    <div class="left">
-      <div class="title clear">
-        <div class="title-left">#{{ ruleForm.bugNo }}</div>
-        <div class="title-right">
-          <el-input
-            class="notshow"
-            v-model="ruleForm.title"
-            :placeholder="'标题'"
-            :size="'medium'"
-          />
+    <div
+      v-if="powers && powers.length > 0 && powers.some((item) => item == '007')"
+    >
+      <div class="left">
+        <div class="title clear">
+          <div class="title-left">#{{ ruleForm.bugNo }}</div>
+          <div class="title-right">
+            <el-input
+              class="notshow"
+              v-model="ruleForm.title"
+              :placeholder="'标题'"
+              :disabled="!powers.some((item) => item == '005')"
+              :size="'medium'"
+            />
+          </div>
         </div>
-      </div>
-      <div class="stockApply-com">
-        <el-tabs :size="'mini'" v-model="activeName">
-          <el-tab-pane label="描述详情" name="1">
-            <div class="desc">
-              <tinymce
-                v-model="ruleForm.remark"
-                :width="'100%'"
-                :height="'350px'"
-              />
-            </div>
-            <div class="desc">
-              <div v-html="html" class="show-html"></div>
-            </div>
-            <div class="pinglun">
-              <div class="pinglun-title">评论</div>
-              <div
-                class="pinglun-input"
-                v-if="!pinglunEdit"
-                @click="pinglunEdit = true"
-              >
-                请输入评论: Ctrl+V可粘贴截图
-              </div>
-              <div v-else>
-                <comModule
-                  :id="'add'"
-                  @cancel="pinglunEdit = false"
-                  @submit="plunsubmit"
+        <div class="stockApply-com">
+          <el-tabs :size="'mini'" v-model="activeName">
+            <el-tab-pane label="描述详情" name="1">
+              <div class="desc" v-if="powers.some((item) => item == '005')">
+                <tinymce
+                  v-if="newTime !== ''"
+                  v-model="ruleForm.remark"
+                  :width="'100%'"
+                  :height="'350px'"
                 />
               </div>
-            </div>
-            <div class="tableData">
-              <div
-                class="tableData-main"
-                v-for="(item, index) in tableData"
-                :key="item.talk_note + 'key'"
-                :style="{
-                  borderLeft:
-                    index + 1 === tableData.length
-                      ? '2px solid transparent'
-                      : '2px solid #252b3a',
-                }"
-              >
-                <div class="tableData-title clear">
-                  <div class="dian-mian fl">
-                    <div class="dian">&nbsp;</div>
-                    <div class="dian-zhe" v-if="index + 1 === tableData.length">
-                      &nbsp;
+              <div class="desc" v-else>
+                <div class="desc-main">
+                  <div v-html="ruleForm.remark" class="show-html"></div>
+                </div>
+              </div>
+
+              <div class="pinglun">
+                <div class="pinglun-title">评论</div>
+                <div
+                  class="pinglun-input"
+                  v-if="!pinglunEdit"
+                  @click="pinglunEdit = true"
+                >
+                  请输入评论: Ctrl+V可粘贴截图
+                </div>
+                <div v-else>
+                  <comModule
+                    :id="'add'"
+                    @cancel="pinglunEdit = false"
+                    @submit="plunsubmit"
+                  />
+                </div>
+              </div>
+              <div class="tableData">
+                <div
+                  class="tableData-main"
+                  v-for="(item, index) in tableData"
+                  :key="item.talk_note + 'key'"
+                  :style="{
+                    borderLeft:
+                      index + 1 === tableData.length
+                        ? '2px solid transparent'
+                        : '2px solid #252b3a',
+                  }"
+                >
+                  <div class="tableData-title clear">
+                    <div class="dian-mian fl">
+                      <div class="dian">&nbsp;</div>
+                      <div
+                        class="dian-zhe"
+                        v-if="index + 1 === tableData.length"
+                      >
+                        &nbsp;
+                      </div>
+                    </div>
+                    <div class="user fl">{{ item.talk_name }}</div>
+                    <div class="time fr">{{ item.addtime }}</div>
+                    <div
+                      class="operation fr"
+                      v-if="!item.edit && item.is_edit === '0'"
+                    >
+                      <i class="el-icon-edit" @click="editItem(index)"></i>
+                      <i
+                        class="el-icon-delete"
+                        @click="deleteById(item.id)"
+                      ></i>
                     </div>
                   </div>
-                  <div class="user fl">{{ item.talk_name }}</div>
-                  <div class="time fr">{{ item.addtime }}</div>
-                  <div
-                    class="operation fr"
-                    v-if="!item.edit && item.is_edit === '0'"
-                  >
-                    <i class="el-icon-edit" @click="editItem(index)"></i>
-                    <i class="el-icon-delete" @click="deleteById(item.id)"></i>
-                  </div>
-                </div>
-                <div class="tableData-talk_note">
-                  <div v-if="item.edit">
-                    <comModule
-                      :id="item.id"
-                      :value="item.talk_note"
-                      @cancel="tableData[index].edit = false"
-                      @submit="plunsubmit"
-                    />
+                  <div class="tableData-talk_note">
+                    <div v-if="item.edit">
+                      <comModule
+                        :id="item.id"
+                        :value="item.talk_note"
+                        @cancel="tableData[index].edit = false"
+                        @submit="plunsubmit"
+                      />
+                    </div>
+                    <div
+                      class="talk-note-main"
+                      v-else
+                      v-html="item.talk_note"
+                    ></div>
                   </div>
-                  <div
-                    class="talk-note-main"
-                    v-else
-                    v-html="item.talk_note"
-                  ></div>
                 </div>
-              </div>
-              <div
-                class="my-page"
-                v-if="pageInfo.total > 5"
-                style="margin: -40px 0 0 0"
-              >
-                <el-pagination
-                  @current-change="handleCurrentChange"
-                  :current-page="pageInfo.page"
-                  :page-size="pageInfo.size"
-                  layout="total, prev, pager, next"
-                  :total="pageInfo.total"
+                <div
+                  class="my-page"
+                  v-if="parmValue.total > 5"
                 >
-                </el-pagination>
+                  <el-pagination
+                    @current-change="handleCurrentChange"
+                    @prev-click='handleCurrentChange'
+                    @next-click='handleCurrentChange'
+                    :current-page="parmValue.page"
+                    :page-size="parmValue.size"
+                    layout="total, prev, pager, next"
+                    :total="parmValue.total"
+                  >
+                  </el-pagination>
+                </div>
               </div>
-            </div>
-          </el-tab-pane>
-          <el-tab-pane label="操作记录" name="2">
-            <record :newTime="newTime" :id="queryId" />
-          </el-tab-pane>
-        </el-tabs>
+            </el-tab-pane>
+            <el-tab-pane label="操作记录" name="2">
+              <record :newTime="newTime" v-if="newTime !== ''" :bugNo="bugNo" />
+            </el-tab-pane>
+          </el-tabs>
+        </div>
       </div>
-    </div>
-    <div class="right">
-      <div class="title">
-        基本信息
-        <el-button
-          class="fr"
+      <div class="right">
+        <div class="title">
+          基本信息
+          <el-button
+            class="fr"
+            :size="'mini'"
+            v-if="
+              powers.some((item) => item == '005') ||
+              powers.some((item) => item == '012')
+            "
+            type="primary"
+            style="margin: 6px 0 0 0"
+            @click="submitForm"
+            >保存
+          </el-button>
+        </div>
+        <el-form
+          ref="ruleForm"
+          :model="ruleForm"
           :size="'mini'"
-          v-if="!isDetail"
-          type="primary"
-          style="margin: 6px 0 0 0"
-          @click="submitForm"
-          >保存
-        </el-button>
-      </div>
-      <el-form
-        ref="ruleForm"
-        :model="ruleForm"
-        :size="'mini'"
-        label-width="80px"
-        class="demo-ruleForm"
-      >
-        <el-form-item label="处理状态:">
-          <el-select
-            class="notshow"
-            v-model="ruleForm.status"
-            style="width: 100%"
-            placeholder="处理状态:"
-          >
-            <el-option
-              v-for="item in statusOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+          label-width="80px"
+          class="demo-ruleForm"
+        >
+          <el-form-item label="处理状态:">
+            <el-select
+              class="notshow"
+              v-model="ruleForm.status"
+              style="width: 100%"
+              :disabled="!powers.some((item) => item == '012')"
+              placeholder="处理状态:"
             >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="处理人:">
-          <el-select
-            class="notshow"
-            v-model="ruleForm.deal_id"
-            style="width: 100%"
-            filterable
-            clearable
-            placeholder="处理人:"
-          >
-            <el-option
-              v-for="item in userOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+              <el-option
+                v-for="item in statusOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="处理人:">
+            <el-select
+              class="notshow"
+              v-model="ruleForm.deal_id"
+              style="width: 100%"
+              filterable
+              clearable
+              :disabled="!powers.some((item) => item == '012')"
+              placeholder="处理人:"
             >
-            </el-option>
-          </el-select>
-          <div class="setUser" @click="showModel = true">
-            <i class="el-icon-setting"></i>
-          </div>
-        </el-form-item>
-        <el-form-item label="优先级:">
-          <el-select
-            class="notshow"
-            v-model="ruleForm.level"
-            style="width: 100%"
-            :size="'mini'"
-            placeholder="优先级"
-          >
-            <el-option
-              v-for="item in levelOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+              <el-option
+                v-for="item in userOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+            <div
+              class="setUser"
+              v-if="powers.some((item) => item == '002')"
+              @click="showModel = true"
             >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="需求类型:">
-          <el-select
-            class="notshow"
-            v-model="ruleForm.type"
-            style="width: 100%"
-            :size="'mini'"
-            placeholder="需求类型"
-          >
-            <el-option
-              v-for="item in typeOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+              <i class="el-icon-setting"></i>
+            </div>
+          </el-form-item>
+          <el-form-item label="优先级:">
+            <el-select
+              class="notshow"
+              v-model="ruleForm.level"
+              style="width: 100%"
+              :size="'mini'"
+              :disabled="!powers.some((item) => item == '012')"
+              placeholder="优先级"
             >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="功能区:">
-          <good-class
-            class="notshow"
-            :value="ruleForm.model_id"
-            :size="'mini'"
-            @handleChange="goods_class_change"
-            :disabled="isDetail"
-            :type="'1'"
-            :placeholder="'功能区'"
-          />
-        </el-form-item>
-        <el-form-item label="创建人:">
-          <div class="show-input">{{ ruleForm.apply_name }}</div>
-        </el-form-item>
-
-        <el-form-item label="创建人部门:">
-          <div class="show-input hei">
-            <el-tag
-              style="margin: 0 5px 0 0"
-              type="info"
-              size="mini"
-              v-for="(ditem, dindex) in ruleForm.company_name"
-              :key="ditem + dindex"
+              <el-option
+                v-for="item in levelOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="需求类型:">
+            <el-select
+              class="notshow"
+              v-model="ruleForm.type"
+              style="width: 100%"
+              :size="'mini'"
+              :disabled="!powers.some((item) => item == '012')"
+              placeholder="需求类型"
             >
-              <span
-                v-for="(cItem, cindex) in ditem"
-                :key="cItem + dindex + cindex"
-                :style="{ marginLeft: cindex > 0 ? '0px' : '0px' }"
+              <el-option
+                v-for="item in typeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
               >
-                <span v-show="cindex > 0">/</span><span>{{ cItem.name }}</span>
-              </span>
-              <!-- {{ ditem.name }} -->
-            </el-tag>
-          </div>
-        </el-form-item>
-      </el-form>
-      <div class="tijiaoBTN"></div>
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="功能区:">
+            <good-class
+              class="notshow"
+              :value="ruleForm.model_id"
+              :size="'mini'"
+              @handleChange="goods_class_change"
+              :disabled="!powers.some((item) => item == '012')"
+              :type="'1'"
+              :placeholder="'功能区'"
+            />
+          </el-form-item>
+          <el-form-item label="创建人:">
+            <div
+              class="show-input"
+              :class="{ disabled: !powers.some((item) => item == '012') }"
+            >
+              {{ ruleForm.apply_name }}
+            </div>
+          </el-form-item>
+
+          <el-form-item label="创建人部门:">
+            <div class="show-input hei">
+              <el-tag
+                style="margin: 0 5px 0 0"
+                type="info"
+                size="mini"
+                v-for="(ditem, dindex) in ruleForm.company_name"
+                :key="ditem + dindex"
+              >
+                <span
+                  v-for="(cItem, cindex) in ditem"
+                  :key="cItem + dindex + cindex"
+                  :style="{ marginLeft: cindex > 0 ? '0px' : '0px' }"
+                >
+                  <span v-show="cindex > 0">/</span
+                  ><span>{{ cItem.name }}</span>
+                </span>
+              </el-tag>
+            </div>
+          </el-form-item>
+        </el-form>
+        <div class="tijiaoBTN"></div>
+      </div>
+      <select-handler-model
+        :id="queryId"
+        :show-model="showModel"
+        :type="type"
+        @refresh="(showModel = false), getMuser()"
+        @cancel="showModel = false"
+      />
     </div>
-    <select-handler-model
-      :id="queryId"
-      :show-model="showModel"
-      :type="type"
-      @refresh="(showModel = false), getMuser()"
-      @cancel="showModel = false"
-    />
+    <no-auth v-else></no-auth>
   </div>
 </template>
 <script>
@@ -292,13 +325,10 @@ export default {
         page: 1, // 页码
         size: 5, // 每页显示条数
         id: this.queryId,
-      },
-      tableData: [],
-      pageInfo: {
-        size: 5,
-        curr: 1,
         total: 0,
       },
+      tableData: [],
+      bugNo: "",
       statusOptions: statusOptions,
       levelOptions: levelOptions,
       typeOptions: typeOptions,
@@ -320,17 +350,17 @@ export default {
   },
   methods: {
     async handleCurrentChange(val) {
+      console.log(val);
       this.parmValue.page = val;
-      this.pageInfo.curr = val;
       await this.searchList();
     },
     async initForm() {
       this.loading = true;
+      this.newTime = "";
       this.InitializeForm();
       await this.resetForm();
       await this.initData();
       this.loading = false;
-      this.getNewTime();
       await this.searchList();
     },
 
@@ -424,6 +454,7 @@ export default {
           deal_id,
           company_name,
         } = res.data;
+        this.bugNo = bugNo;
         // console.log(res.data);
         this.ruleForm = {
           id: id,
@@ -435,12 +466,12 @@ export default {
           level: level || "",
           type: type || "",
           apply_name: apply_name || "",
-          model_id: model_id|| [],//.split(",") 
+          model_id: model_id || [], //.split(",")
           deal_id: deal_id || "",
           company_name: company_name || [],
         };
-        await this.getMuser();
         this.getNewTime();
+        await this.getMuser();
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();
       } else {
@@ -467,7 +498,7 @@ export default {
     },
     // 刷新表格
     async searchList() {
-      this.tableData = [];
+      // this.tableData = [];
       this.parmValue.id = this.queryId;
       const res = await asyncRequest.cloudlist(this.parmValue);
       if (res && res.code === 0 && res.data) {
@@ -476,12 +507,12 @@ export default {
           v.edit = false;
         });
         this.tableData = list;
-        this.pageInfo.total = Number(count);
+        this.parmValue.total = Number(count);
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();
       } else {
         this.tableData = [];
-        this.pageInfo.total = 0;
+        this.parmValue.total = 0;
       }
     },
     // 重置
@@ -520,6 +551,10 @@ export default {
           // model.model_id = model.model_id.toString();
           delete model["company_name"];
           delete model["apply_name"];
+          let remark = model.remark;
+          remark = remark.replace(/\n/g, "");
+          remark = remark.replace(/"/g, "'");
+          model.remark = remark;
           let length = 5000;
           if (model.remark.length > length) {
             this.$message.warning("描述文字及标签总长度不能超过5000!");
@@ -617,6 +652,18 @@ export default {
       width: 100%;
       box-sizing: border-box;
       padding: 0 2px 0 0;
+      height: 421px;
+
+      .desc-main {
+        position: relative;
+        border: 2px solid #dfe4ed;
+        line-height: 40px;
+        width: 100%;
+        height: 100%;
+        padding: 16px;
+        box-sizing: border-box;
+        overflow-y: scroll;
+      }
     }
     .pinglun {
       width: 100%;
@@ -717,6 +764,12 @@ export default {
         }
       }
     }
+    .my-page{
+      position: relative;
+      margin: -30px 0 10px 0;
+      width: 100%;
+      box-sizing: border-box;
+    }
   }
   .right {
     width: 350px;
@@ -765,6 +818,10 @@ export default {
             background: rgb(242, 245, 250);
           }
         }
+        &.disabled {
+          color: #c0c4cc !important;
+          // cursor: not-allowed !important;
+        }
         &.hei {
           height: auto !important;
           line-height: 28px auto !important;

+ 35 - 34
src/views/purchaseAndSale/adjust/record.vue

@@ -9,19 +9,20 @@
       :size="size"
       @page-curr-change="handlePageChange"
       @page-size-change="handleSizeChange"
-      @screen-reset="
-        pageInfo.curr = 1;
-        searchList();
-      "
-      @screen-submit="
-        pageInfo.curr = 1;
-        searchList();
-      "
+      @screen-reset="reloadList()"
+      @screen-submit="reloadList()"
     >
-      <template #operation="{ scope }">
-        <el-tooltip effect="dark" content="详情" placement="top">
-          <i class="el-icon-view tb-icon" @click="openModal(scope.row)"></i>
-        </el-tooltip>
+      <template #action_item="{ scope }">
+        <span v-if="scope.row.handle_name === '描述'">
+          <el-tag size="mini" @click="openModal(scope.row)">查看详情</el-tag>
+        </span>
+        <span v-else>{{ scope.row.action_item }}</span>
+      </template>
+      <template #action_after="{ scope }">
+        <span v-if="scope.row.handle_name === '描述'">
+          <el-tag size="mini" @click="openModal(scope.row)">查看详情</el-tag>
+        </span>
+        <span v-else>{{ scope.row.action_after }}</span>
       </template>
     </ex-table>
     <contrastModel
@@ -40,16 +41,18 @@ import { recordList } from "./columns";
 export default {
   name: "record",
   mixins: [mixinPage, resToken],
-  props: ["newTime", "id", "sitem"],
+  props: ["newTime", "bugNo"],
   components: {
     contrastModel,
   },
-  newTime: function (val) {
-    if (val) {
-      this.pageInfo.curr = 1;
-      this.searchList();
-    }
+  watch: {
+    newTime: function (val) {
+      if (val) {
+        this.reloadList();
+      }
+    },
   },
+
   data() {
     return {
       loading: true,
@@ -57,6 +60,7 @@ export default {
       parmValue: {
         page: 1, // 页码
         size: 15, // 每页显示条数
+        bugNo: "",
       },
       // 状态
       statusOptions: [
@@ -82,34 +86,31 @@ export default {
     };
   },
   mounted() {
-    this.searchList();
+    this.reloadList();
   },
   methods: {
-    restSearch() {
-      // 表格 - 分页
-      this.pageInfo = {
-        size: 15,
-        curr: 1,
-        total: 0,
-      };
-      this.parmValue = {
-        page: 1, // 页码
-        size: 15, // 每页显示条数
-      };
-      this.searchList();
+    async reloadList() {
+      this.parmValue.page = 1;
+      this.pageInfo.curr = 1;
+      await this.searchList();
     },
-
-    // 新建/编辑/详情
     openModal(row) {
       this.sitem = row;
       this.showModel = true;
     },
     // 刷新表格
     async searchList() {
+      this.tableData = [];
       this.loading = true;
-      const res = await asyncRequest.list(this.parmValue);
+      this.parmValue.bugNo = this.bugNo;
+      const res = await asyncRequest.MLogList(this.parmValue);
       if (res && res.code === 0 && res.data) {
         this.tableData = res.data.list;
+        this.tableData.forEach((v) => {
+          v.type_name = v.type === "1" ? "新建" : "编辑";
+          //  console.log(v);
+        });
+        // this.tableData
         this.pageInfo.total = Number(res.data.count);
       } else if (res && res.code >= 100 && res.code <= 104) {
         await this.logout();

+ 26 - 17
src/views/purchaseAndSale/adjust/select-handler-model/index.vue

@@ -31,7 +31,7 @@
               hasChecked: '${checked}/${total}',
             }"
             @change="handleChange"
-            :data="data"
+            :data="listData"
           >
           </el-transfer>
         </el-col>
@@ -57,16 +57,12 @@ export default {
   mixins: [resToken],
   data() {
     return {
-      data: [],
+      listData: [],
       leftChecked: [],
       rightChecked: [],
       checkedValue: [],
       renderFunc(h, option) {
-        return (
-          <span>
-            {option.label}
-          </span>
-        );
+        return <span>{option.label}</span>;
       },
 
       loading: false,
@@ -99,7 +95,7 @@ export default {
       this.loading = false;
     },
     async getAlluser() {
-      this.data = [];
+      this.listData = [];
       const res = await asyncRequest.allUser({});
       if (res && res.code === 0) {
         let list = res.data;
@@ -111,7 +107,7 @@ export default {
           };
           arr.push(model);
         });
-        this.data = arr;
+        this.listData = arr;
         await this.getMuser();
         // console.log(this.data);
       } else if (res && res.code >= 100 && res.code <= 104) {
@@ -123,19 +119,20 @@ export default {
     async getMuser() {
       this.checkedValue = [];
       const res = await asyncRequest.MUser({ company_id: this.type });
-      if (res && res.code === 0) {
-        let list = res.data;
-        this.data.forEach((x) => {
+      const { code, data, message } = res;
+      if (code === 0) {
+        let list = data;
+        this.listData.forEach((x) => {
           list.forEach((y) => {
             if (x.key === y.manange_id) {
               this.checkedValue.push(x.key);
             }
           });
         });
-      } else if (res && res.code >= 100 && res.code <= 104) {
+      } else if (code >= 100 && code <= 104) {
         await this.logout();
       } else {
-        this.$message.warning(res.message);
+        this.$message.warning(message);
       }
     },
     async submitForm() {
@@ -144,7 +141,8 @@ export default {
         company_id: this.type,
         id: this.checkedValue,
       };
-      let res = await asyncRequest.MUpdate(model);
+      const res = await asyncRequest.MUpdate(model);
+      const { code, data, message } = res;
       this.loading = false;
       if (res && res.code === 0) {
         this.$notify.success({
@@ -154,10 +152,21 @@ export default {
         this.showModelThis = false;
         // 刷新
         this.$emit("refresh");
-      } else if (res && res.code >= 100 && res.code <= 104) {
+      } else if (code === 10002) {
+        let htmlList = "<ul>";
+        data.forEach((v) => {
+          htmlList += `<li>${v.manange_name}</li>`;
+        });
+        htmlList += "</ul>";
+        this.$notify({
+          title: message || "",
+          dangerouslyUseHTMLString: true,
+          message: htmlList,
+        });
+      } else if (code >= 100 && code <= 104) {
         await this.logout();
       } else {
-        this.$message.warning(res.message);
+        this.$message.warning(message);
       }
     },
   },

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません