Shannon_mu 3 years ago
parent
commit
7aa72beca8

+ 3 - 1
operationSupport/src/components/common/alertModal.vue

@@ -73,7 +73,6 @@ export default {
     data() {
         return {
             // modal:{}
-            
         };
     },
     computed: {
@@ -167,6 +166,9 @@ export default {
                 border: 1px solid #0eaeff;
                 color: #0eaeff;
             }
+            .dialog-footer .previousStep {
+                float: left;
+            }
             .el-button--primary {
                 background-color: #0eaeff;
                 // border-color: #0eaeff;

+ 19 - 4
operationSupport/src/components/common/uploadList.vue

@@ -1,8 +1,9 @@
 <template>
     <div class="clickUpload">
-        <div class="clickUpText" v-for="item in uploadArr" :key="item">
+        <div class="clickUpText" :class="!typeVideo(item) && !typeIcon(item) ? 'fileName' : ''" v-for="item in uploadArr" :key="item">
             <video v-if="typeVideo(item)" :src="item"></video>
-            <img v-else class="dataImg" :src="item" />
+            <img v-else-if="typeIcon(item)" class="dataImg" :src="item" />
+            <div v-else>{{ item }}</div>
         </div>
         <div class="clickUpText" v-if="uploadArr.length < limit">
             <div class="addImg" @click="clickFile"><i class="el-icon-plus ashText"></i></div>
@@ -23,7 +24,7 @@
 </template>
 <script>
 export default {
-    name:'bzUpload',
+    name: 'bzUpload',
     data() {
         return {
             token: {
@@ -40,6 +41,10 @@ export default {
             type: String,
             default: 'img,video'
         },
+        className: {
+            type: Boolean,
+            default: false
+        },
         name: {
             type: String,
             default: 'file'
@@ -80,6 +85,11 @@ export default {
             let videoType = ['mp4'];
             return videoType.includes(type);
         },
+        typeIcon(str) {
+            let type = str.slice(str.lastIndexOf('.') + 1, str.length);
+            let imgType = ['png', 'jpeg', 'jpg'];
+            return imgType.includes(type);
+        },
         clickFile() {
             this.$refs['upload'].$children[0].$refs.input.click();
         }
@@ -90,7 +100,7 @@ export default {
 .clickUpload {
     display: flex;
     .clickUpText {
-        height:60px;
+        height: 60px;
         width: 80px;
         border: 1px solid #e0e1e3;
         box-sizing: border-box;
@@ -117,5 +127,10 @@ export default {
             height: 100%;
         }
     }
+    .fileName {
+        height: initial !important;
+        width: initial !important;
+        border: none;
+    }
 }
 </style>

+ 2 - 2
operationSupport/src/views/businessManagement/contractManagement/index.vue

@@ -21,9 +21,9 @@
                 <el-tooltip class="item" effect="light" placement="bottom" content="新增">
                     <i class="zoniot_font zoniot-icon-tianjia2" @click="addOrEdit('add')"></i>
                 </el-tooltip>
-                <el-tooltip class="item" effect="light" placement="bottom" content="导出">
+                <!-- <el-tooltip class="item" effect="light" placement="bottom" content="导出">
                     <i class="zoniot_font zoniot-icon-daochu2" @click="exportExcel"></i>
-                </el-tooltip>
+                </el-tooltip> -->
             </div>
         </div>
         <div class="roles-wrap">

+ 13 - 4
operationSupport/src/views/businessManagement/contractManagement/stepPage/add.vue

@@ -38,10 +38,10 @@ export default {
         return {
             showIndex: 0,
             formData: {
-                contractNo: '662816181',
+                contractNo: '',
                 filePath: '',
                 contractType: 0,
-                customerType: 1,
+                customerType: null,
                 communityId: '',
                 signTime: '',
                 startTime: '',
@@ -216,7 +216,7 @@ export default {
                     if (valid) {
                         this.$store.getters['getPopups'][0].showIndex++;
                         this.showIndex++;
-                        this.$store.getters['getPopups'][0].nextStepButton = false;
+                        this.$store.getters['getPopups'][0].nextStepButton = true;
                         this.$store.getters['getPopups'][0].previousStepButton = true;
                         this.$store.getters['getPopups'][0].showConfirmButton = true;
                     }
@@ -229,7 +229,7 @@ export default {
                 this.$store.getters['getPopups'][0].nextStepButton = false;
                 this.$store.getters['getPopups'][0].showConfirmButton = false;
                 this.$store.getters['getPopups'][0].previousStepButton = true;
-            }
+            } 
 
             // if (this.$store.getters['getPopups'][0].showIndex == 1) {
             //     this.$store.getters['getPopups'][0].nextStepButton = true;
@@ -255,9 +255,18 @@ export default {
                 this.$store.getters['getPopups'][0].previousStepButton = true;
                 this.$store.getters['getPopups'][0].showConfirmButton = true;
             }
+        },
+        randomPassword() {
+            let sun = 15;
+            let randomNumber = [];
+            for (let numb = 0; numb < sun; numb++) {
+                randomNumber.push(parseInt(Math.ceil(Math.random() * sun)));
+            }
+            this.formData.contractNo = randomNumber.toString().replace(/,/g, '');
         }
     },
     created() {
+        this.randomPassword();
         const { todo, data, communityArr, communityTree } = this.params;
         this.communityArr = communityArr;
         this.communityTree = communityTree;

+ 8 - 0
operationSupport/src/views/businessManagement/contractManagement/stepPage/details.vue

@@ -41,6 +41,14 @@
             <el-col :span="8">
                 <el-form-item label="签订时间:">{{ this.$moment(new Date(formData.signTime)).format('YYYY-MM-DD') }}</el-form-item>
             </el-col>
+            <div class="blockCl">
+                <el-col :span="8">
+                    <el-form-item label="合同附件:"> {{ formData.filePath }} </el-form-item></el-col
+                >
+                <el-col :span="8">
+                    <el-form-item label="企业营业执照:" label-width="110px"> {{ formData.businessLicense }} </el-form-item></el-col
+                >
+            </div>
         </div>
 
         <div class="formContent-item_title blockCl">金额条款</div>

+ 1 - 1
operationSupport/src/views/businessManagement/contractManagement/stepPage/firstStep.vue

@@ -113,7 +113,7 @@
                 ></el-date-picker> </el-form-item
         ></el-col>
         <div class="formContent-item_title">合同附件</div>
-        <el-form-item label="合同附件"> <bz-upload type="img" :uploadArr="$parent.pictureArr" :limit="1"></bz-upload> </el-form-item>
+        <el-form-item label="合同附件"> <bz-upload :className="true"  :uploadArr="$parent.pictureArr" :limit="1"></bz-upload> </el-form-item>
     </el-form>
 </template>
 <script>

+ 0 - 1
operationSupport/src/views/businessManagement/contractManagement/stepPage/stepTwo.vue

@@ -114,7 +114,6 @@ export default {
                     this.$parent.idsObj[index].increasingYear = item.increasingYear;
                 }
             });
-            this.$store.getters['getPopups'][0].nextStepButton = false;
         },
         getList() {
             const { formData, idsObj } = this.$parent;

+ 4 - 2
operationSupport/src/views/businessManagement/enterpriseManagement/index.vue

@@ -105,7 +105,8 @@ export default {
             ],
             mixins_post: 'get',
             industryArr: [],
-            economicTypeArr: []
+            economicTypeArr: [],
+            objRow: {}
         };
     },
     created() {
@@ -145,7 +146,8 @@ export default {
         exportExcel() {
             this.__exportExcel('/sc-community/enterprise/excel', this.mixins_query);
         },
-        lookDetail() {
+        lookDetail(row) {
+            this.objRow = row;
             this.isLook = false;
         },
         relation(row) {

+ 8 - 8
operationSupport/src/views/businessManagement/enterpriseManagement/stepPage/add.vue

@@ -1,12 +1,12 @@
 <template>
-    <el-form ref="form" :model="formData" :rules="formRules" label-width="110px">
+    <el-form ref="form" :model="formData" :rules="formRules" label-width="80px">
         <div class="formContent-item_title">客户信息</div>
         <el-col :span="8"
             ><el-form-item label="企业名称" prop="name">
                 <el-input v-model="formData.name" clearable placeholder="请输入企业名称"></el-input> </el-form-item
         ></el-col>
         <el-col :span="8">
-            <el-form-item label="企业简称" prop="abbreviate">
+            <el-form-item label="企业简称" >
                 <el-input v-model="formData.abbreviate" clearable placeholder="请输入企业简称"></el-input> </el-form-item
         ></el-col>
         <el-col :span="8"
@@ -39,7 +39,7 @@
                 ></el-input> </el-form-item
         ></el-col>
         <el-col :span="16"
-            ><el-form-item label="注册地址详情">
+            ><el-form-item label="注册地址详情"  label-width="110px">
                 <el-input v-model="formData.address" clearable placeholder="请输入注册地址详情"></el-input></el-form-item
         ></el-col>
         <el-col :span="8"
@@ -48,11 +48,11 @@
 
         <div class="formContent-item_title">联系人信息</div>
         <el-col :span="8"
-            ><el-form-item label="联系人姓名" prop="contactName">
+            ><el-form-item label="联系人姓名" prop="contactName" label-width="90px">
                 <el-input v-model="formData.contactName" clearable placeholder="请输入联系人姓名"></el-input></el-form-item
         ></el-col>
         <el-col :span="8"
-            ><el-form-item label="联系人手机" prop="contactPhone">
+            ><el-form-item label="联系人手机" prop="contactPhone"  label-width="100px">
                 <el-input
                     v-model="formData.contactPhone"
                     clearable
@@ -61,7 +61,7 @@
                 ></el-input></el-form-item
         ></el-col>
         <el-col :span="8"
-            ><el-form-item label="联系人身份证" prop="contactIdCard">
+            ><el-form-item label="联系人身份证" prop="contactIdCard"  label-width="100px">
                 <el-input
                     v-model="formData.contactIdCard"
                     clearable
@@ -70,7 +70,7 @@
                 ></el-input></el-form-item
         ></el-col>
         <el-col :span="8"
-            ><el-form-item label="性别">
+            ><el-form-item label="性别"  label-width="90px">
                 <el-radio v-model="formData.contactGender" :label="1">男</el-radio>
                 <el-radio v-model="formData.contactGender" :label="0">女</el-radio>
             </el-form-item></el-col
@@ -100,7 +100,7 @@ export default {
             pictureArr: [],
             formRules: {
                 name: [this.$valid.inputRequired('企业名称')],
-                abbreviate: [this.$valid.inputRequired('企业简称')],
+                // abbreviate: [this.$valid.inputRequired('企业简称')],
                 creditCode: [this.$valid.inputRequired('信用代码')],
                 industry: [this.$valid.selectRequired('所属行业')],
                 economicType: [this.$valid.selectRequired('经济类型')],

+ 125 - 7
operationSupport/src/views/businessManagement/enterpriseManagement/stepPage/details.vue

@@ -1,24 +1,121 @@
 <template>
     <div class="scheduling">
         <div class="search">
+            <div class="titleHade">{{fromData.name}}</div>
             <div class="search-icon">
                 <el-tooltip effect="light" placement="bottom" content="返回">
                     <i class="zoniot_font zoniot-icon-fanhui" @click="goback()"></i>
                 </el-tooltip>
             </div>
         </div>
+        <div class="content">
+            <div class="tages">
+                <div v-for="(item, index) in tabs" :key="index" class="tages-list" :class="tabsIndex === index ? 'active' : ''">
+                    <span @click="toggleTab(index)">{{ item.lable }}</span>
+                </div>
+            </div>
+            <div class="content-item" v-show="tabsIndex == 0">
+                <div class="formContent-item_title">基础信息</div>
+
+                <div class="widthFlex">
+                    <household-table :tableName="tableArr.left" :tabData="fromData"></household-table>
+                    <household-table :tableName="tableArr.right" :tabData="fromData"></household-table>
+                </div>
+                <div class="formContent-item_title">联系人信息</div>
+                <div class="widthFlex">
+                    <household-table :tableName="tableArrBottom.left" :tabData="fromData"></household-table>
+                    <household-table :tableName="tableArrBottom.right" :tabData="fromData"></household-table>
+                </div>
+            </div>
+            <div class="content-item" v-show="tabsIndex == 1">
+                <div class="formContent-item_title">合同列表</div>
+            </div>
+        </div>
     </div>
 </template>
 <script>
+import householdTable from './householdTable.vue';
 export default {
+    components: { householdTable },
     data() {
+        var _this = this;
         return {
-            monthValue: '',
-            findUser: [],
-            thisObj: {},
-            calendarData: [],
-            indexThis: 0,
-            trueArr: [] //已有设置时间集合
+            tabsIndex: 0,
+            fromData: {},
+            tabs: [
+                {
+                    lable: '企业信息'
+                },
+                {
+                    lable: '合同信息'
+                }
+            ],
+            tableArr: {
+                left: [
+                    {
+                        lable: '企业名称',
+                        prop: 'name'
+                    },
+                    {
+                        lable: '信用代码',
+                        prop: 'creditCode'
+                    },
+                    {
+                        lable: '经济类型',
+                        prop: 'economicType',
+                        typeArray: _this.$parent.economicTypeArr
+                    },
+                    {
+                        lable: '法人手机',
+                        prop: 'legalPersonPhone'
+                    }
+                ],
+                right: [
+                    {
+                        lable: '企业简称',
+                        prop: 'abbreviate'
+                    },
+                    {
+                        lable: '所属行业',
+                        prop: 'industry',
+                        typeArray: _this.$parent.industryArr
+                    },
+                    {
+                        lable: '企业法人',
+                        prop: 'legalPerson'
+                    },
+                    {
+                        lable: '注册地址',
+                        prop: 'address'
+                    }
+                ]
+            },
+            tableArrBottom: {
+                left: [
+                    {
+                        lable: '联系人姓名',
+                        prop: 'contactName'
+                    },
+                    {
+                        lable: '联系人身份证',
+                        prop: 'contactIdCard'
+                    }
+                ],
+                right: [
+                    {
+                        lable: '联系人手机',
+                        prop: 'contactPhone'
+                    },
+                    {
+                        lable: '性别',
+                        prop: 'contactGender',
+                        typeArray: [
+                            { type: 1, lable: '男' },
+                            { type: 0, lable: '女' }
+                        ]
+                    }
+                ]
+            }
         };
     },
     filters: {
@@ -29,11 +126,32 @@ export default {
     methods: {
         goback() {
             this.$emit('initPage');
+        },
+        toggleTab(index) {
+            this.tabsIndex = index;
+        },
+        getDetail() {
+            this.$http
+                .get('/sc-community/enterprise/find/' + this.$parent.objRow.id)
+                .then(({ status, msg, data }) => {
+                    this.fromData = data;
+                })
+                .catch(() => {});
         }
     },
-    created() {},
+    created() {
+        this.getDetail();
+    },
     mounted() {}
 };
 </script>
 <style scoped lang='scss'>
+@import './style.scss';
+.titleHade{
+    line-height: rem(30);
+    display:inline-block;
+    font-size: 24px;
+    font-weight: 600;
+    color: #424656;
+}
 </style>

+ 63 - 0
operationSupport/src/views/businessManagement/enterpriseManagement/stepPage/householdTable.vue

@@ -0,0 +1,63 @@
+<template>
+    <div class="item-table">
+        <div class="table-list" v-for="item in tableNames" :key="item">
+            <div class="lable">{{ item.lable }}</div>
+            <div class="text" v-if="!!item.typeArray">{{ tabDatas[item.prop] | matchingVal(item.typeArray) }}</div>
+            <div class="text" v-else>{{ tabDatas[item.prop] || ' --' }}</div>
+        </div>
+    </div>
+</template>
+<script>
+import Vue from 'vue';
+let _this = this;
+export default {
+    name: 'householdTable',
+    data() {
+        return {};
+    },
+    props: {
+        tableName: {
+            type: Array
+        },
+        tabData: {
+            type: Object
+        }
+    },
+    filters: {
+        matchingVal(val, arr) {
+            let v = '--';
+            let newDa;
+            if (!!val) {
+                try {
+                    v = '';
+                    newDa = val.split(':');
+                    newDa.forEach((item, index) => {
+                        v += item + arr[index].lable;
+                    });
+                } catch (e) {}
+
+                arr.forEach((item) => {
+                    if (!!item.code && item.code === val) {
+                        v = item.name;
+                    } else if (item.type === val) {
+                        v = item.lable;
+                    }
+                });
+            }
+            return v;
+        }
+    },
+    computed: {
+        tableNames() {
+            return this.tableName;
+        },
+        tabDatas() {
+            return this.tabData;
+        },
+    },
+    created() {}
+};
+</script>
+<style lang='scss' scoped >
+@import './style.scss';
+</style>

+ 245 - 0
operationSupport/src/views/businessManagement/enterpriseManagement/stepPage/style.scss

@@ -0,0 +1,245 @@
+@import "@assets/css/public-style.scss";
+.formContent {
+  display: flex;
+  justify-content: space-between;
+  padding: 20px 20px 0 20px;
+  background: white;
+  .formContent-item {
+    width: calc((100% / 3) - 80px);
+    // width: calc((100vw / 3) - 80px);
+    .formContent-formList {
+      display: flex;
+      justify-content: space-between;
+    }
+    .block-title {
+      width: 200px;
+      height: 80px;
+      background: #ffffff;
+      border-radius: 2px;
+      border: 1px solid #e0e1e3;
+      position: relative;
+      .floor {
+        margin: 16px 0 0 0;
+        // text-align: center;
+        font-weight: 600;
+        font-size: 16px;
+      }
+      .remove {
+        color: $mainBgColor;
+        font-size: 12px;
+        cursor: pointer;
+      }
+      .list-title {
+        margin-left: 20px;
+        position: relative;
+        z-index: 2;
+        // white-space: nowrap;
+      }
+
+      img {
+        &.bg-img {
+          position: absolute;
+          right: 0;
+          top: 0;
+          width: 100px;
+        }
+        &.bg-imgIoc {
+          position: absolute;
+          right: 20px;
+          top: 28px;
+          width: 24px;
+        }
+      }
+    }
+    .addHouse {
+      margin-bottom: 25px;
+    }
+    .add-block {
+      width: 80px;
+      height: 80px;
+      background: #ffffff;
+      border-radius: 2px;
+      border: 1px solid #e0e1e3;
+      position: relative;
+      cursor: pointer;
+      & > img {
+        width: 16px;
+        height: 16px;
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        transform: translate(-50%, -50%);
+      }
+    }
+    .addCat {
+      & > div {
+        float: left;
+        margin-right: 20px;
+        margin-bottom: 20px;
+      }
+    }
+  }
+}
+// .formContent-item_title {
+//   font-size: 14px;
+//   position: relative;
+//   margin-left: 14px;
+//   margin-bottom: 20px;
+//   &::before {
+//     position: absolute;
+//     left: -14px;
+//     top: 4px;
+//     width: 4px;
+//     height: 12px;
+//     border-radius: 2px;
+//     display: block;
+//     background: $mainBgColor;
+//     content: " ";
+//   }
+// }
+.buttons {
+  text-align: right;
+  background: white;
+  padding: 0 20px 20px 0;
+}
+.top-title {
+  padding: 20px;
+  background: white;
+  margin-bottom: 20px;
+  position: relative;
+  h1 {
+    font-size: 30px;
+    line-height: 42px;
+    .titleType {
+      font-size: 14px;
+      width: 68px;
+      height: 30px;
+      border-radius: 2px;
+      text-align: center;
+      line-height: 30px;
+      vertical-align: middle;
+      color: $mainTextColor;
+      border: 1px solid $mainBgColor;
+      font-weight: normal;
+      margin-left: 20px;
+      display: inline-block;
+    }
+  }
+  .right {
+    position: absolute;
+    right: 20px;
+    top: 20px;
+  }
+  .text {
+    margin-top: 10px;
+    font-size: 12px;
+    color: #747d87;
+    span {
+      margin-right: 40px;
+    }
+  }
+}
+
+.content {
+  background: white;
+  .tages {
+    display: flex;
+    padding: 15px 20px;
+    border-bottom: 1px solid #ddd;
+    .tages-list {
+      margin-right: 40px;
+      position: relative;
+      cursor: pointer;
+      &.active {
+        color: $mainTextColor;
+        &::before {
+          position: absolute;
+          left: 0px;
+          bottom: -15px;
+          width: 100%;
+          height: 2px;
+          background: $mainBgColor;
+          content: " ";
+        }
+      }
+    }
+  }
+  .content-item {
+    padding: 30px 20px 20px 20px;
+    .widthFlex {
+      display: flex;
+      margin-bottom: 20px;
+      .item-table {
+        width: 100%;
+        border: 1px solid #e0e1e3;
+        &:first-of-type {
+          border-right: none;
+        }
+        .table-list {
+          display: flex;
+          line-height: 40px;
+
+          border-bottom: 1px solid #e0e1e3;
+          &:last-of-type {
+            border-bottom: none;
+          }
+          .lable {
+            width: 200px;
+            background: #f8fcff;
+            padding-left: 20px;
+            box-sizing: border-box;
+            border-right: 1px solid #e0e1e3;
+          }
+          .text {
+            flex: 1;
+            padding-left: 20px;
+            box-sizing: border-box;
+          }
+        }
+      }
+    }
+  }
+}
+
+.clickUpload {
+  width: 130px;
+  height: 182px;
+  background: #f8fcff;
+  border-radius: 4px;
+  border: 1px solid #e0e1e3;
+  position: relative;
+  z-index: 1000;
+  text-align: center;
+  overflow: hidden;
+  font-size: 12px;
+  cursor: pointer;
+  color: #e0e1e3;
+  .mini-upload {
+    position: absolute;
+    z-index: 0;
+  }
+}
+.clickUpText {
+  height: 100%;
+  width: 100%;
+  pointer-events: none;
+  position: absolute;
+  background: #f8fcff;
+  z-index: 1;
+  img.bg-img {
+    width: 52px;
+    margin-top: 46px;
+    margin-bottom: 12px;
+  }
+  img.dataImg {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+}
+.show-required-icon-star {
+  &:before {
+    content: "*";
+    color: #f56c6c;
+  }
+}

+ 2 - 1
operationSupport/src/views/payService/collection/stepPage/add.vue

@@ -17,7 +17,7 @@
                 <el-option label="支付宝" :value="2"></el-option>
             </el-select>
         </template>
-        <template slot="authFile">
+        <template slot="authFile" >
             <el-input v-model="formData.authFile" disabled placeholder="请上传授权文件">
                 <i slot="suffix" class="zoniot_font zoniot-icon-shangchuan1" @click="QueryClick"></i>
             </el-input>
@@ -173,6 +173,7 @@ export default {
     created() {
         if (this.params.todo == 'edit') {
             Object.assign(this.formData, this.params.data);
+           this.formCols[0].splice(this.formCols[0].length-1,1) 
         }
     }
 };