Forráskód Böngészése

Merge branch 'dev' of http://172.16.100.139/new-business/drp-web into dev

002390 2 éve
szülő
commit
44c9893161

+ 2 - 1
src/api/classify/basic.js

@@ -1,10 +1,11 @@
 import request from '@/utils/request'
 
 // 获取物料分类树形结构数据
-export function getTree() {
+export function getTree(data) {
   return request({
     url: `/system/classify/list`,
     method: 'post',
+    data: data
   })
 }
 // 获取物料基本分类详细信息

+ 14 - 4
src/components/PopDialog/drug.vue

@@ -26,9 +26,13 @@
                   :props="defaultProps"
                   node-key="id"
                   highlight-current
+                  check-on-click-node
                   @node-click="clickTree"
                   :filter-node-method="filterNode"
                   ref="tree">
+                  <span slot-scope="{ node, data}">
+                    <span>{{data.code +' '+ node.label }}</span>
+                  </span>
                 </el-tree>
               </el-col>
             </el-row>
@@ -70,7 +74,9 @@ export default {
       // 判断是否为最末级节点
       // isLast: false,
       // 选中的节点
-      choosePoint: {}
+      choosePoint: {},
+      // 多选数组
+      chooseArr: []
     };
   },
   props: {},
@@ -99,17 +105,21 @@ export default {
     },
     clickTree(data) {
       console.log('树形节点信息:',data)
+      console.log('选择的数组:', this.$refs.tree.getCheckedNodes())
       this.choosePoint = data
+      this.chooseArr = this.$refs.tree.getCheckedNodes()
     },
     filterNode(value, data) {
-      console.log('value', value)
-      console.log('data', data)
+      // console.log('value', value)
+      // console.log('data', data)
         if (!value) return true;
-        return data.name.indexOf(value) !== -1;
+        return data.name.indexOf(value) !== -1 || data.code.indexOf(value) !== -1
     },
     doSubmit() {
       console.log('子组件选择的数据',this.choosePoint)
       this.$emit("doSubmit", this.choosePoint);
+      // console.log('子组件选择的数据',this.chooseArr)
+      // this.$emit("doSubmit", this.chooseArr);
       this.visible = false;
     },
   },

+ 1 - 1
src/components/PopDialog/fourClass.vue

@@ -89,7 +89,7 @@ export default {
     // 获取数据列表
     refreshList(data) {
       this.loading = true;
-      getTree(data).then(res => {
+      getTree({isEnable: '0'}).then(res => {
         console.log('res',res)
         if(res.code === 200) {
           this.threedata = res.rows

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 436 - 422
src/views/business/spd/bo/basic/details.vue


+ 20 - 3
src/views/business/spd/bo/basic/index.vue

@@ -168,7 +168,7 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-view"
+            icon="el-icon-search"
             @click="enterDetails(scope.row)"
           >进入详情</el-button>
           <el-button
@@ -180,6 +180,12 @@
           <el-button
             size="mini"
             type="text"
+            icon="el-icon-view"
+            @click="handleBrowse(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
           >删除</el-button>
@@ -197,7 +203,7 @@
 
     <!-- 添加或修改商机基础信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="this.form.winningState > 0 || this.operatingState == 'Browse'">
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">基本信息</dev>
         </el-divider>
@@ -317,7 +323,7 @@
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -583,6 +589,17 @@ export default {
         this.title = "修改商机基础信息";
       });
     },
+    /** 查看按钮操作 */
+    handleBrowse(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getBasic(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.operatingState = "Browse";
+        this.title = "基础信息";
+      });
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {

+ 5 - 3
src/views/business/spd/bo/behavior/AA.vue

@@ -3,6 +3,7 @@
     <el-upload
       multiple
       :action="uploadImgUrl"
+      :auto-upload="false"
       list-type="picture-card"
       :on-success="handleUploadSuccess"
       :before-upload="handleBeforeUpload"
@@ -19,7 +20,7 @@
     >
       <i class="el-icon-plus"></i>
     </el-upload>
-
+    
     <!-- 上传提示 -->
     <div class="el-upload__tip" slot="tip" v-if="showTip">
       请上传
@@ -77,11 +78,11 @@ export default {
       dialogVisible: false,
       hideUpload: false,
       baseUrl: process.env.VUE_APP_BASE_API,
-      uploadImgUrl: process.env.VUE_APP_BASE_API + "/mk/bo/behaviorA", // 上传的图片服务器地址
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
       headers: {
         Authorization: "Bearer " + getToken(),
       },
-      fileList: ['https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg']
+      fileList: []
     };
   },
   watch: {
@@ -223,3 +224,4 @@ export default {
     transform: translateY(0);
 }
 </style>
+

+ 34 - 210
src/views/business/spd/bo/behavior/behaviorList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="10" class="mb8">
+    <el-row :gutter="10" class="mb8" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -74,7 +74,7 @@
       <el-table-column label="销售组织" align="center" prop="salesOrgName" v-if="source == 'Behavior'"/>
       <el-table-column label="部门" align="center" prop="deptName" v-if="source == 'Behavior'"/>
 
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -85,6 +85,12 @@
           <el-button
             size="mini"
             type="text"
+            icon="el-icon-view"
+            @click="handleBrowse(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
           >删除</el-button>
@@ -102,7 +108,7 @@
 
     <!-- 添加或修改行动对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="this.operatingState == 'Browse'">
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">基本信息</dev>
         </el-divider>
@@ -233,76 +239,7 @@
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">照片信息</dev>
         </el-divider>
-        <AA :value = "fileList"/>
-        <!-- <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button
-              type="info"
-              plain
-              icon="el-icon-upload2"
-              size="small"
-              @click="handleImport(`P`)"
-              >上传</el-button
-            >
-          </el-col>
-        </el-row>
-        <el-image
-          style="width: 100px; height: 100px"
-          :src="url"
-          :preview-src-list="srcList">
-        </el-image> -->
-        <!-- <el-divider content-position="left">附件</el-divider>
-          <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-              <el-button
-                type="info"
-                plain
-                icon="el-icon-upload2"
-                size="mini"
-                @click="handleImport(`A`)"
-                >上传</el-button
-              >
-            </el-col>
-          </el-row>
-          <el-table v-loading="loading" :data="form.accessory">
-            <el-table-column type="selection" width="55" align="center" />
-            <el-table-column
-              type="index"
-              label="序号"
-              width="55"
-              align="center"
-            />
-            <el-table-column label="名称" align="center" prop="fileName" />
-            <el-table-column
-              label="操作"
-              align="center"
-              class-name="small-padding fixed-width"
-            >
-              <template slot-scope="scope">
-                <el-row>
-                  <el-col :span="1.5">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      @click="deleteBehaviorA('list', scope.row)"
-                      >删除</el-button
-                    >
-                  </el-col>
-                  <el-col :span="1.5">
-                    <el-button
-                      type="warning"
-                      plain
-                      icon="el-icon-download"
-                      size="mini"
-                      @click="exportAccessory(scope.row.url, scope.row.Name)"
-                      >下载</el-button
-                    >
-                  </el-col>
-                </el-row>
-              </template>
-            </el-table-column>
-          </el-table> -->
+        <AA :limit="2" v-model="fileList"></AA>
         <div class="md-auditInfo">
           <el-divider content-position="left">
             <dev style="width: 50px; height: 40px; font-size: 18px">其它信息</dev>
@@ -334,37 +271,10 @@
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <!-- 上传对话框 -->
-    <el-dialog
-      :title="upload.title"
-      :visible.sync="upload.open"
-      width="400px"
-      append-to-body
-    >
-      <el-upload
-        ref="upload"
-        :limit="1"
-        accept=".xlsx, .xls,.doc,docx"
-        :headers="upload.headers"
-        :action="1"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
-        <i class="el-icon-upload"></i>
-        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
-      </el-upload>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFileForm">确 定</el-button>
-        <el-button @click="upload.open = false">取 消</el-button>
-      </div>
-    </el-dialog>
     <!-- 联系人参照 -->
     <ContactRef
       ref="contactSelect"
@@ -383,11 +293,8 @@
 
 <script>
 import { listBehavior, getBehavior, delBehavior, addBehavior, updateBehavior } from "@/api/business/spd/bo/behavior";
-import {delBehaviorA} from "@/api/business/spd/bo/behaviorA";
 import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
 import SaleaeaRef from '@/views/business/spd/bo/refer/saleaea/index.vue';
-import axios from "axios";
-import { getToken } from "@/utils/auth";
 import AA from '@/views/business/spd/bo/behavior/AA.vue';
 
 export default {
@@ -397,8 +304,7 @@ export default {
   components: {ContactRef,SaleaeaRef,AA},
   data() {
     return {
-      fileList: [
-      ],
+      fileList: [],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -462,28 +368,8 @@ export default {
           { required: true, message: "拜访效果不能为空", trigger: "blur" }
         ],
       },
-      // 上传参数
-      upload: {
-        // 是否显示弹出层
-        open: false,
-        // 弹出层标题
-        title: "",
-        // 是否禁用上传
-        isUploading: false,
-        // 上传类型
-        type: "",
-        // 设置上传的请求头部
-        headers: { Authorization: "Bearer " + getToken() },
-        // 上传的地址
-        url: process.env.VUE_APP_BASE_API + "/mk/bo/behaviorA",
-      },
-      url: [
-        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
-      ],
-      srcList: [
-        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
-        'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
-      ],
+      //当前操作状态
+      operatingState: '',
     };
   },
   created() {
@@ -500,6 +386,12 @@ export default {
     this.getList();
   },
   methods: {
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        console.log(this.form.photos.split(','));
+      });
+    },
     /** 查询行动列表 */
     getList() {
       this.loading = true;
@@ -570,6 +462,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.operatingState = "Insert";
       //新增行动设置默认值
       if(this.source == 'BoDetails'){
         this.queryParams.bo = this.bo.id;
@@ -601,12 +494,25 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
+      this.operatingState = "Update";
       const id = row.id || this.ids
       getBehavior(id).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "修改行动";
       });
+      this.getPictureList(); 
+    },
+    /** 查看按钮操作 */
+    handleBrowse(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getBehavior(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.operatingState = "Browse";
+        this.title = "基础信息";
+      });
     },
     /** 提交按钮 */
     submitForm() {
@@ -638,88 +544,6 @@ export default {
         this.$modal.msgSuccess("删除成功");
       }).catch(() => {});
     },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/behavior/export', {
-        ...this.queryParams
-      }, `behavior_${new Date().getTime()}.xlsx`)
-    },
-    /** 上传按钮操作 */
-    handleImport(type) {
-      this.upload.open = true;
-      this.upload.type = type;
-      console.log('this.upload',this.upload);
-    },
-    // 提交上传文件
-    submitFileForm() {
-      this.$refs.upload.submit();
-    },
-    // 文件上传中处理
-    handleFileUploadProgress(event, file, fileList) {
-      this.upload.isUploading = true;
-    },
-    // 文件上传成功处理
-    handleFileSuccess(response, file, fileList) {
-      this.upload.open = false;
-      this.upload.isUploading = false;
-      this.$refs.upload.clearFiles();
-      this.$alert(
-        "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-          response.msg +
-          "</div>",
-        "上传结果",
-        { dangerouslyUseHTMLString: true }
-      );
-    },
-    //下载附件
-    exportBehaviorA(urlId, fileName) {
-      let resUrl =
-        "https://test-sy.derom.com/document-center/fastdfs/download?id=" +
-        urlId;
-      axios
-        .create({
-          timeout: 3000,
-          responseType: "blob", // 响应类型, 将响应数据转换为二进制数据
-          headers: {},
-        })
-        .get(resUrl)
-        .then((res) => {
-          console.log(res);
-          // 地址转换
-          let url = window.URL.createObjectURL(res.data);
-          const a = document.createElement("a");
-          a.setAttribute("href", url);
-          a.setAttribute("download", fileName);
-          document.body.append(a);
-          a.click();
-          document.body.removeChild(a);
-        });
-    },
-    //删除附件
-    deleteBehaviorA(row) {
-      this.$modal
-        .confirm("是否确认删除?")
-        .then(function () {})
-        .then(() => {
-          delBehaviorA(row.id).then((res) => {
-            if (res.code == 200) {
-              if (this.upload.flag == "list") {
-                listAccessory(this.form.basic.id).then((response) => {
-                  this.form.accessory = response.rows;
-                });
-              } else {
-                getBasic(this.$route.params.id).then((response) => {
-                  this.form.basic = response.data;
-                });
-              }
-              this.$modal.msgSuccess("删除成功");
-            } else {
-              this.$modal.msgSuccess("删除失败");
-            }
-          });
-        })
-        .catch(() => {});
-    },
     // 触发联系人参照列表
     refereContact() {
       this.$refs.contactSelect.init()

+ 46 - 9
src/views/business/spd/bo/contact/contactList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="10" class="mb8">
+    <el-row :gutter="10" class="mb8" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -102,7 +102,7 @@
       <el-table-column label="联系人分类" align="center" prop="contactClassification" />
 
       <el-table-column label="所属客户编码" align="center" prop="customerCode" /> -->
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -113,6 +113,12 @@
           <el-button
             size="mini"
             type="text"
+            icon="el-icon-view"
+            @click="handleBrowse(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
           >删除</el-button>
@@ -130,7 +136,7 @@
 
     <!-- 添加或修改联系人管理对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="this.operatingState == 'Browse'">
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">基本信息</dev>
         </el-divider>
@@ -223,8 +229,10 @@
         </el-divider>
         <el-row>
           <el-col :span="8">
-            <el-form-item label="上级联系人" prop="superiorContact">
-              <el-input v-model="form.superiorContact" placeholder="请输入上级联系人" />
+            <el-form-item label="上级联系人" prop="superiorContactName">
+              <el-input v-model="form.superiorContactName" >
+                <el-button slot="append" icon="el-icon-more" @click="refereContact"></el-button>
+              </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -381,7 +389,7 @@
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -391,6 +399,13 @@
       @doSubmit="customerSelectionsToInput"
       :single="true"
     />
+    <!-- 联系人参照 -->
+    <ContactRef
+      ref="contactSelect"
+      @doSubmit="contactSelectionsToInput"
+      :single="true"
+      :outerQueryParams="this.bo"
+    />
   </div>
 </template>
 
@@ -399,12 +414,13 @@ import { listContact, getContact, delContact, addContact, updateContact } from "
 import CustomerRef from '@/views/business/spd/bo/refer/customer/index.vue';
 import EducationList from '../education/educationList.vue';
 import RelationshipList from '../relationship/relationshipList.vue';
+import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
 
 export default {
   name: "contactList",
   props:["source","bo"],
   dicts: ['sys_user_sex','mk_bo_contact_state','mk_bo_section','mk_bo_position','mk_bo_job_title','mk_bo_power','mk_bo_support','mk_bo_field_expertise','sys_yes_no','mk_bo_contact_type'],
-  components: {CustomerRef,EducationList,RelationshipList},
+  components: {CustomerRef,ContactRef,EducationList,RelationshipList},
   data() {
     return {
       // 遮罩层
@@ -536,6 +552,7 @@ export default {
         position: null,
         section: null,
         superiorContact: null,
+        superiorContactName: null,
         state: null,
         hobby: null,
         birthplace: null,
@@ -577,7 +594,7 @@ export default {
       }
       this.form.state = '1';
       this.open = true;
-      this.title = "添加联系人管理";
+      this.title = "添加联系人";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -587,10 +604,21 @@ export default {
       getContact(id).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "修改联系人管理";
+        this.title = "修改联系人";
         this.timer = new Date().getTime();
       });
     },
+    /** 查看按钮操作 */
+    handleBrowse(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getContact(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.operatingState = "Browse";
+        this.title = "基础信息";
+      });
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
@@ -636,6 +664,15 @@ export default {
       this.form.customer = selections[0].id;
       this.form.customerName = selections[0].name;
     },
+    // 触发联系人参照列表
+    refereContact() {
+      this.$refs.contactSelect.init()
+    },
+    //联系人参照列表选择后
+    contactSelectionsToInput (selections) {
+      this.form.superiorContact = selections[0].id;
+      this.form.superiorContactName = selections[0].name;
+    },
   }
 };
 </script>

+ 21 - 6
src/views/business/spd/bo/task/taskList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="10" class="mb8">
+    <el-row :gutter="10" class="mb8" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -65,7 +65,7 @@
         </template>
       </el-table-column>
       <el-table-column label="任务内容" align="center" prop="content" />
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -76,6 +76,12 @@
           <el-button
             size="mini"
             type="text"
+            icon="el-icon-view"
+            @click="handleBrowse(scope.row)"
+          >查看</el-button>
+          <el-button
+            size="mini"
+            type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
           >删除</el-button>
@@ -93,7 +99,7 @@
 
     <!-- 添加或修改任务对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="this.operatingState == 'Browse'">
         <el-row>
           <el-col :span="8">
             <el-form-item label="商机名称" prop="boName">
@@ -250,7 +256,7 @@
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -488,6 +494,17 @@ export default {
         this.timer = new Date().getTime();
       });
     },
+    /** 查看按钮操作 */
+    handleBrowse(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getTask(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.operatingState = "Browse";
+        this.title = "基础信息";
+      });
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
@@ -539,10 +556,8 @@ export default {
     },
     //联系人参照列表选择后
     contactSelectionsToInput (selections) {
-      console.log('selections',selections);
       this.form.linkman = selections[0].id;
       this.form.linkmanName = selections[0].name;
-      console.log('this.form',this.form);
     },
     // 触发组织参照列表
     refereOrg() {

+ 2 - 2
src/views/material/changeApply/add.vue

@@ -315,7 +315,7 @@
             </el-col>
           </el-row>
           <el-row :gutter="20">
-            <el-col :span="8">
+            <!-- <el-col :span="8">
               <el-form-item label="最后审核人" prop="approver">
                 <el-input disabled v-model="basicForm.approver"></el-input>
               </el-form-item>
@@ -324,7 +324,7 @@
               <el-form-item label="最后审核时间" prop="approvalTime">
                 <el-input disabled v-model="basicForm.approvalTime"></el-input>
               </el-form-item>
-            </el-col>
+            </el-col> -->
             <el-col :span="8">
               <el-form-item label="单据状态" prop="status">
                 <el-select 

+ 1 - 1
src/views/material/changeApply/index.vue

@@ -98,7 +98,7 @@
       >
         <!-- <el-table-column type="selection" width="55" /> -->
         <el-table-column label="序号" align="center" type="index" width="50" />
-        <el-table-column label="申请组织" align="center" width="200" prop="orgId" />
+        <el-table-column label="所属组织" align="center" width="200" prop="orgId" />
         <el-table-column label="单据编码" align="center" width="200" prop="code" />
         <el-table-column label="申请时间" align="center" width="150" prop="createTime" />
         <el-table-column label="单据状态" align="center" prop="status" :formatter="statusJug" />

+ 1 - 1
src/views/material/classify/index.vue

@@ -232,7 +232,7 @@ export default {
     // 获取树形结构
     getTreeData(data) {
       this.loading = true;
-      getTree(data)
+      getTree({})
         .then((res) => {
           let { code, rows } = res;
           if (code === 200) {

+ 52 - 30
src/views/material/requisition/add.vue

@@ -243,6 +243,51 @@
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
+              <el-form-item label="序列号管理" prop="serialNoManager">
+                <el-select
+                    v-model="basicForm.serialNoManager"
+                    placeholder="序列号管理"
+                    clearable
+                    @change="stockControl"
+                    :disabled="disable"
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="税类编码" prop="rateCode">
+                <el-input :disabled="disable" v-model="basicForm.rateCode"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="中包装单位" prop="mediumPackageUnitId">
+                <el-select
+                    ref="midpacks"
+                    v-model="basicForm.mediumPackageUnitId"
+                    placeholder="请选择"
+                    clearable
+                    :disabled="disable"
+                    @focus="chooseMidpack"
+                  >
+                    <el-option
+                      v-for="item in midPackOptions"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+                </el-select>
+                <!-- <el-input :disabled="disable" v-model="basicForm.mediumPackageUnitId"></el-input> -->
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
               <el-form-item label="效期管理" prop="expiryDateManagerment">
                 <el-select
                     v-model="basicForm.expiryDateManagerment"
@@ -447,7 +492,7 @@
           <el-row :gutter="20">
             <el-col :span="8">
               <el-form-item label="中包装数" prop="mediumPackageQty">
-                <el-input :disabled="disable" v-model="basicForm.mediumPackageQty"></el-input>
+                <el-input type="number" min="0" :disabled="disable" v-model="basicForm.mediumPackageQty"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -569,37 +614,13 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="启用状态" prop="isEnable">
-                <el-input disabled v-model="basicForm.isEnable"></el-input>
+                <el-input v-show="false" disabled v-model="basicForm.isEnable"></el-input>
+                <el-input disabled value="启用"></el-input>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="税类编码" prop="rateCode">
-                <el-input :disabled="disable" v-model="basicForm.rateCode"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="中包装单位" prop="mediumPackageUnitId">
-                <el-select
-                    ref="midpacks"
-                    v-model="basicForm.mediumPackageUnitId"
-                    placeholder="请选择"
-                    clearable
-                    :disabled="disable"
-                    @focus="chooseMidpack"
-                  >
-                    <el-option
-                      v-for="item in midPackOptions"
-                      :key="item.id"
-                      :label="item.name"
-                      :value="item.id"
-                    />
-                </el-select>
-                <!-- <el-input :disabled="disable" v-model="basicForm.mediumPackageUnitId"></el-input> -->
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
               <el-form-item label="备注" prop="remark">
                 <el-input :disabled="disable" v-model="basicForm.remark"></el-input>
               </el-form-item>
@@ -787,7 +808,7 @@
             </el-col>
           </el-row>
           <el-row :gutter="20">
-            <el-col :span="8">
+            <!-- <el-col :span="8">
               <el-form-item label="最后审核人" prop="reviewedByName">
                 <el-input disabled v-model="basicForm.reviewedByName"></el-input>
               </el-form-item>
@@ -796,7 +817,7 @@
               <el-form-item label="最后审核时间" prop="approvalTime">
                 <el-input disabled v-model="basicForm.approvalTime"></el-input>
               </el-form-item>
-            </el-col>
+            </el-col> -->
             <el-col :span="8">
               <el-form-item label="单据状态" prop="status">
                 <el-select 
@@ -1011,6 +1032,7 @@ export default {
         isB2c: '2',
         assembly: '2',
         isInventoryStatus: '0',
+        serialNoManager: '2',
         expiryDateManagerment: '0',
         nearOnsetManagerment: '0',
         usefulLife: '',
@@ -1045,7 +1067,7 @@ export default {
         purchasingOrganization: '',
         // 新增业务部门
         businessDepartment: '',
-        isEnable: '',
+        isEnable: '0',
         safeStock: '',
         mediumPackageUnitId: '',
         remark: '',

+ 1 - 1
src/views/material/requisition/index.vue

@@ -81,7 +81,7 @@
       >
         <!-- <el-table-column type="selection" width="55" /> -->
         <el-table-column label="序号" align="center" type="index" width="50"/>
-        <el-table-column label="申请组织" align="center" width="200" prop="orgName" />
+        <el-table-column label="所属组织" align="center" width="200" prop="orgName" />
         <el-table-column label="单据编码" align="center" width="200" prop="billCode" />
         <el-table-column label="申请人" align="center" prop="createName" />
         <el-table-column label="申请时间" align="center" width="150" prop="createTime" />

+ 1 - 1
src/views/material/specialAttr/index.vue

@@ -234,7 +234,7 @@ export default {
   methods: {
     // 获取树形结构
     getTreeData(data) {
-      getTree(data).then(res => {
+      getTree({}).then(res => {
         let {code, rows} = res
         if(code === 200) {
           this.data = rows

+ 29 - 5
src/views/monitor/job/index.vue

@@ -78,7 +78,7 @@
           v-hasPermi="['monitor:job:export']"
         >导出</el-button>
       </el-col>
-      <el-col :span="1.5">
+<!--      <el-col :span="1.5">
         <el-button
           type="info"
           plain
@@ -87,7 +87,7 @@
           @click="handleJobLog"
           v-hasPermi="['monitor:job:query']"
         >日志</el-button>
-      </el-col>
+      </el-col>-->
 
       <el-col :span="1.5">
         <el-button
@@ -175,7 +175,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="员工工号" prop="empno">
+            <el-form-item label="任务员工" prop="empno">
               <el-input v-model="form.empno" placeholder="请输入员工工号" />
             </el-form-item>
           </el-col>
@@ -187,8 +187,8 @@
           </el-col>
 
           <el-col :span="12">
-            <el-form-item label="超时时间" prop="timeout" >
-              <el-input v-model="form.timeout" placeholder="请输入超时时间" />
+            <el-form-item label="超时限制" prop="timeout" >
+              <el-input v-model="form.timeout" placeholder="请输入超时限制" />
             </el-form-item>
           </el-col>
 
@@ -445,6 +445,30 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        duration: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        dispc: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        jobTypeS: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        jobType: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        jobGroup: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        timeout: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        cont: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
+        empno: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],
         jobName: [
           { required: true, message: "名称不能为空", trigger: "blur" }
         ],

+ 235 - 63
src/views/monitor/job/log.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="任务名称" prop="jobName">
         <el-input
           v-model="queryParams.jobName"
@@ -52,8 +59,16 @@
         ></el-date-picker>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -67,7 +82,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['monitor:job:remove']"
-        >删除</el-button>
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -77,7 +93,8 @@
           size="mini"
           @click="handleClean"
           v-hasPermi="['monitor:job:remove']"
-        >清空</el-button>
+          >清空</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -87,7 +104,8 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['monitor:job:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -96,48 +114,144 @@
           icon="el-icon-close"
           size="mini"
           @click="handleClose"
-        >关闭</el-button>
+          >关闭</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="jobLogList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="jobLogList"
+      @selection-change="handleSelectionChange"
+      @row-dblclick="dblclick"
+    >
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="日志编号" width="80" align="center" prop="jobLogId" />
+      <el-table-column label="编号" width="80" align="center" prop="jobLogId" />
+      <el-table-column
+        label="任务名称"
+        width="180"
+        align="center"
+        prop="jobName"
+        :show-overflow-tooltip="false"
+      />
 
+      <el-table-column
+        label="任务员工"
+        width="80"
+        align="center"
+        prop="nickName"
+      />
+      <el-table-column
+        label="任务大类"
+        width="80"
+        align="center"
+        prop="jobType"
+      />
+      <el-table-column
+        label="任务小类"
+        width="80"
+        align="center"
+        prop="jobTypeS"
+      />
+      <el-table-column
+        label="任务内容"
+        width="200"
+        align="center"
+        prop="cont"
+      />
 
-        <el-table-column label="员工工号" width="80" align="center" prop="enpno" />
-        <el-table-column label="任务大类" width="80" align="center" prop="jobType" />
-        <el-table-column label="任务小类" width="80" align="center" prop="jobTypeS" />
-        <el-table-column label="任务内容" width="80" align="center" prop="cont" />
-        <el-table-column label="超时时间" width="80" align="center" prop="timeout" />
-        <el-table-column label="预计时长" width="80" align="center" prop="duration" />
+      <el-table-column
+        label="执行时间"
+        align="center"
+        prop="createTime"
+        width="180"
+      >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="完成时间"
+        width="180"
+        align="center"
+        prop="executionTime"
+      />
+      <el-table-column
+        label="完成时长"
+        width="180"
+        align="center"
+        prop="tqaaaa"
+      />
+      <el-table-column
+        label="预计时长"
+        width="80"
+        align="center"
+        prop="durations"
+      />
+      <el-table-column
+        label="超时时长"
+        width="180"
+        align="center"
+        prop="tqbbbb"
+      />
 
-      <el-table-column label="任务名称" align="center" prop="jobName" :show-overflow-tooltip="true" />
-      <el-table-column label="任务组名" align="center" prop="jobGroup" :show-overflow-tooltip="true">
+      <el-table-column
+        label="oa执行状态"
+        width="80"
+        align="center"
+        prop="completionStatus"
+      >
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_job_group" :value="scope.row.jobGroup"/>
+          <dict-tag
+            :options="dict.type.sys_oa_back_state"
+            :value="scope.row.completionStatus"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />
-      <el-table-column label="日志信息" align="center" prop="jobMessage" :show-overflow-tooltip="true" />
-      <el-table-column label="执行状态" align="center" prop="status">
+
+      <el-table-column
+        label="任务组名"
+        align="center"
+        prop="jobGroup"
+        :show-overflow-tooltip="true"
+      >
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
+          <dict-tag
+            :options="dict.type.sys_job_group"
+            :value="scope.row.jobGroup"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="执行时间" align="center" prop="createTime" width="180">
+      <!--      <el-table-column label="调用目标字符串" align="center" prop="invokeTarget" :show-overflow-tooltip="true" />-->
+      <el-table-column
+        label="日志信息"
+        align="center"
+        prop="jobMessage"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column label="任务执行状态" align="center" prop="status">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
+          <dict-tag
+            :options="dict.type.sys_common_status"
+            :value="scope.row.status"
+          />
         </template>
       </el-table-column>
+      <!--      <el-table-column label="执行时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>-->
 
-
-
-
-
-
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -145,13 +259,14 @@
             icon="el-icon-view"
             @click="handleView(scope.row)"
             v-hasPermi="['monitor:job:query']"
-          >详细</el-button>
+            >详细</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -159,7 +274,12 @@
     />
 
     <!-- 调度日志详细 -->
-    <el-dialog title="调度日志详细" :visible.sync="open" width="700px" append-to-body>
+    <el-dialog
+      title="调度日志详细"
+      :visible.sync="open"
+      width="700px"
+      append-to-body
+    >
       <el-form ref="form" :model="form" label-width="100px" size="mini">
         <el-row>
           <el-col :span="12">
@@ -169,13 +289,19 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="任务分组:">{{ form.jobGroup }}</el-form-item>
-            <el-form-item label="执行时间:">{{ form.createTime }}</el-form-item>
+            <el-form-item label="执行时间:">{{
+              form.createTime
+            }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="调用方法:">{{ form.invokeTarget }}</el-form-item>
+            <el-form-item label="调用方法:">{{
+              form.invokeTarget
+            }}</el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="日志信息:">{{ form.jobMessage }}</el-form-item>
+            <el-form-item label="日志信息:">{{
+              form.jobMessage
+            }}</el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="执行状态:">
@@ -184,7 +310,9 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="异常信息:" v-if="form.status == 1">{{ form.exceptionInfo }}</el-form-item>
+            <el-form-item label="异常信息:" v-if="form.status == 1">{{
+              form.exceptionInfo
+            }}</el-form-item>
           </el-col>
         </el-row>
       </el-form>
@@ -196,12 +324,12 @@
 </template>
 
 <script>
-import { getJob} from "@/api/monitor/job";
+import { getJob } from "@/api/monitor/job";
 import { listJobLog, delJobLog, cleanJobLog } from "@/api/monitor/jobLog";
 
 export default {
   name: "JobLog",
-  dicts: ['sys_common_status', 'sys_job_group'],
+  dicts: ["sys_common_status", "sys_job_group","sys_oa_back_state"],
   data() {
     return {
       // 遮罩层
@@ -228,14 +356,14 @@ export default {
         pageSize: 10,
         jobName: undefined,
         jobGroup: undefined,
-        status: undefined
-      }
+        status: undefined,
+      },
     };
   },
   created() {
     const jobId = this.$route.params && this.$route.params.jobId;
     if (jobId !== undefined && jobId != 0) {
-      getJob(jobId).then(response => {
+      getJob(jobId).then((response) => {
         this.queryParams.jobName = response.data.jobName;
         this.queryParams.jobGroup = response.data.jobGroup;
         this.getList();
@@ -245,16 +373,48 @@ export default {
     }
   },
   methods: {
+    dblclick({ executionTime, createTime }, column) {
+      console.log(
+        (new Date(executionTime).getTime() - new Date(createTime).getTime()) /
+          1000 +
+          "s"
+      );
+    },
     /** 查询调度日志列表 */
     getList() {
       this.loading = true;
-      listJobLog(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-          this.jobLogList = response.rows;
+      listJobLog(this.addDateRange(this.queryParams, this.dateRange)).then(
+        (response) => {
+          this.jobLogList = response.rows.map((item) => {
+            const { executionTime, createTime, duration } = item;
+
+            const durations=`${duration}h`;
+
+            const tqaaaa = (
+              parseInt (
+                new Date(executionTime).getTime() - new Date(createTime).getTime()
+              ) /
+              1000 /
+              60 /
+              60
+            ).toFixed(2)+'h';
+            const tqbbbb =
+              tqaaaa - duration > 0 ? `超时${tqaaaa - duration}h` : `未超时`;
+
+            return {
+              ...item,
+              tqaaaa,
+              tqbbbb,
+              durations,
+            };
+          });
           this.total = response.total;
           this.loading = false;
         }
       );
     },
+
+    // new Date(scope.row.executionTime).getTime()-new Date(scope.row.createTime).getTime())/1000+'s'
     // 返回按钮
     handleClose() {
       const obj = { path: "/monitor/job" };
@@ -273,7 +433,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.jobLogId);
+      this.ids = selection.map((item) => item.jobLogId);
       this.multiple = !selection.length;
     },
     /** 详细按钮操作 */
@@ -284,28 +444,40 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const jobLogIds = this.ids;
-      this.$modal.confirm('是否确认删除调度日志编号为"' + jobLogIds + '"的数据项?').then(function() {
-        return delJobLog(jobLogIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除调度日志编号为"' + jobLogIds + '"的数据项?')
+        .then(function () {
+          return delJobLog(jobLogIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 清空按钮操作 */
     handleClean() {
-      this.$modal.confirm('是否确认清空所有调度日志数据项?').then(function() {
-        return cleanJobLog();
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("清空成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm("是否确认清空所有调度日志数据项?")
+        .then(function () {
+          return cleanJobLog();
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("清空成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('/monitor/jobLog/export', {
-        ...this.queryParams
-      }, `log_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "/monitor/jobLog/export",
+        {
+          ...this.queryParams,
+        },
+        `log_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott