Explorar o código

Merge branch 'master' into crm_16.2.2

bding hai 3 semanas
pai
achega
42d5ca4a3b

+ 10 - 0
src/api/modules/crmApi.js

@@ -781,6 +781,16 @@ const customInterence = {
   getSimpleServiceList: () => {
     return http.get('/statistic_report/contract/service/simple')
   },
+  /**
+   * --------开票到款统计
+  */
+  /**
+   * 销售下拉
+   * @returns 
+   */
+  sellerSelectList: () => {
+    return http.get('/custom/seller/check/invoice_payment/list')
+  },
   /**
    * 获取客户合同商品到款列表
   * @param data.page_size - 每页数据量 - 必填

+ 4 - 0
src/api/modules/rai/raiApi.js

@@ -1095,6 +1095,10 @@ const raiInterface = {
   industrialSubjectSearch: (params) => {
     return http.get("cygx/industrialSubject/search", params);
   },
+  // 查找标的
+  industrialAndSubjectSearch: (params) => {
+    return http.get("cygx/industrialAndSubject/search", params);
+  },
   // 查找标的 标的详情搜索
   industrialSubjectSearchInfo: (params) => {
     return http.get("/cygx/industrialSubject/searchInfo", params);

+ 5 - 0
src/api/modules/sealApi.js

@@ -70,6 +70,11 @@ const sealInterence={
 	//上传/更新签回附件
 	sealCheckFileUpload:params=>{
 		return http.post('/seal/uploadCheckBackFile',params)
+	},
+
+	//获取归属公司
+	getBelongCompany: params => {
+		return http.get('/seal/getAffiliatedCompany')
 	}
 }
 

+ 1 - 1
src/views/Home.vue

@@ -62,7 +62,7 @@
                   </template>
                   <el-menu-item
                     v-for="child in item.children"
-                    :index="child.path=='etaForum'?'etaForum':child.path"
+                    :index="child.path=='etaForum'?$route.fullPath:child.path"
                     :path="child.path"
                     :key="child.path"
                     v-show="!child.hidden"

+ 81 - 24
src/views/custom_manage/contractStatistics.vue

@@ -2,26 +2,51 @@
   <div id="customer-statistics-container" class="customer-statistics-container">
     <div class="search-zone">
       <div class="search-box">
-        <el-input v-model="searchParams.Keyword" placeholder="请输入客户名称" clearable class="search-item"
-        @input="searchList" prefix-icon="el-icon-search" style="width: 240px;" ></el-input>
-        <el-cascader :options="serviceList" style="width: 240px;margin: 0 0 8px 20px;" filterable v-model="checkedService"
-          @change="serviceChange" placeholder="请选择套餐信息" clearable collapse-tags :show-all-levels="false"
-          :props="{multiple:true,label:'title',value:'service_template_id',children:'children',emitPath:false}" key="serivce" >
-        </el-cascader>
-        <div class="date-box">
-          <el-date-picker v-model="searchDate" type="daterange" @change="currentDateTab=0" style="max-width: 240px;margin-right: 20px;"
-            value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
-          <el-select v-model="searchParams.TimeType" placeholder="请选择日期类型" @change="searchList"
-          style="width: 240px;margin-right: 20px;" clearable>
-            <el-option :label="item.label" :value="item.value" v-for="item in timeTypeData" :key="item.value"></el-option>
-          </el-select>
-          <div class="composition-button-tabs">
-            <el-button size="large" v-for="(item,index) in dateButtonData" :key="item.tabId"
-            class="date-button" 
-            :class="[index==0?'first-button':index==(dateButtonData.length-1)?'last-button':'inner-button',currentDateTab==item.tabId?'selectTab':'']" 
-            @click="changeDateType(item)">{{ item.text }}</el-button>
-          </div>
-        </div>
+        <el-form label-width="0" :inline="true" :model="formInline">
+            <el-form-item label="">
+              <el-input v-model="searchParams.Keyword" placeholder="请输入客户名称" clearable class="search-item"
+              @input="searchList" prefix-icon="el-icon-search" style="width: 240px;" ></el-input>
+            </el-form-item>
+            <el-form-item label="" v-if="currentSdId==AdminId ||Role=='admin'||Role=='ficc_admin'||Role=='rai_admin'">
+              <el-cascader :options="saleList" style="width: 240px;margin: 0 0 8px 0;" filterable v-model="checkedSale"
+                @change="saleChange" placeholder="请选择销售" clearable collapse-tags :show-all-levels="false"
+                :props="{multiple:true,label:'RealName',value:'AdminId',children:'ChildrenList',emitPath:false}" key="sale" >
+              </el-cascader>
+            </el-form-item>
+            <el-form-item label="">
+              <el-cascader :options="serviceList" style="width: 240px;margin: 0 0 8px 0;" filterable v-model="checkedService"
+                @change="serviceChange" placeholder="请选择套餐信息" clearable collapse-tags :show-all-levels="false"
+                :props="{multiple:true,label:'title',value:'service_template_id',children:'children',emitPath:false}" key="serivce" >
+              </el-cascader>
+            </el-form-item>
+            <el-form-item label="">
+              <div class="date-box">
+                <el-date-picker v-model="searchDate" type="daterange" @change="currentDateTab=0" style="max-width: 240px;margin-right: 15px;"
+                  value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+                <div class="composition-button-tabs">
+                  <el-button size="large" v-for="(item,index) in dateButtonData" :key="item.tabId"
+                  class="date-button" 
+                  :class="[index==0?'first-button':index==(dateButtonData.length-1)?'last-button':'inner-button',currentDateTab==item.tabId?'selectTab':'']" 
+                  @click="changeDateType(item)">{{ item.text }}</el-button>
+                </div>
+              </div>
+            </el-form-item>
+            <el-form-item label="">
+              <el-select v-model="searchParams.TimeType" placeholder="请选择日期类型" @change="searchList" style="width: 240px;" clearable>
+                  <el-option :label="item.label" :value="item.value" v-for="item in timeTypeData" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="">
+              <el-select v-model="searchParams.HasInvoice" placeholder="请选择开票状态" @change="searchList" style="width: 240px;" clearable>
+                  <el-option :label="item.label" :value="item.value" v-for="item in invoiceData" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="">
+              <el-select v-model="searchParams.HasPayment" placeholder="请选择到款状态" @change="searchList" style="width: 240px;" clearable>
+                  <el-option :label="item.label" :value="item.value" v-for="item in paymentData" :key="item.value"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-form>
       </div>
     </div>
     <div class="amount-show-zone">
@@ -174,12 +199,17 @@ import {customInterence} from '@/api/api.js'
 
       this.payTypeArray=[{id:0,type:''},{id:1,type:'年付'},{id:2,type:'半年付'},{id:3,type:'季付'},{id:4,type:'次付'}]
       this.timeTypeData=[{label:'开票日期',value:1},{label:'到款日期',value:2},{label:'开票日期&到款日期',value:3}]
+      this.invoiceData=[{label:'未开票',value:0 },{label:'已开票',value:1}]
+      this.paymentData=[{label:'未到款',value:0 },{label:'到款',value:1}]
       this.dateButtonData=[{text:'近1周',tabId:1,type:'week',diff:1},{text:'近1月',tabId:2,type:'month',diff:1},
         {text:'近2月',tabId:3,type:'month',diff:2},{text:'近3月',tabId:4,type:'month',diff:3}]
 
       return {
+        currentSdId:process.env.NODE_ENV=='production'?13:233,
         serviceList:[],
+        saleList:[],
         checkedService:[],
+        checkedSale:[],
         searchParams:{
           CurrentIndex:1,
           PageSize:10,
@@ -191,6 +221,9 @@ import {customInterence} from '@/api/api.js'
           TimeType:1,
           SortType:'',
           SortParam:'',
+          HasInvoice:'',// 开票状态 0未开票,1已开票
+          HasPayment:'',// 到款状态 0未到款,1到款
+          SellerIds:''
         },
         currentDateTab:0,
         searchDate:[startDate,endDate],
@@ -206,6 +239,9 @@ import {customInterence} from '@/api/api.js'
       }
     },
     created(){
+      if(this.currentSdId==this.AdminId ||this.Role=='admin'||this.Role=='ficc_admin'||this.Role=='rai_admin'){
+        this.saleSelect()
+      }
       this.getSimpleServiceList()
       this.getList()
     },
@@ -224,7 +260,15 @@ import {customInterence} from '@/api/api.js'
     computed:{
       isAdmin(){
         return localStorage.getItem('Role').indexOf('admin')!=-1 || localStorage.getItem('RoleIdentity').indexOf('ficc_group')!=-1
-      }
+      },
+      Role() {
+        let role = localStorage.getItem('Role') || '';
+        return role;
+      },
+      AdminId() {
+        let role = localStorage.getItem('AdminId') || '';
+        return role;
+      },
     },
     methods: {
       getSimpleServiceList(){
@@ -266,6 +310,10 @@ import {customInterence} from '@/api/api.js'
         this.searchParams.CurrentIndex = pageNo
         this.getList()
       },
+      saleChange(value){
+        this.searchParams.SellerIds = value.join(',')
+        this.searchList()
+      },
       serviceChange(value){
         this.searchParams.ServiceType = value.join(',')
         this.searchList()
@@ -299,6 +347,13 @@ import {customInterence} from '@/api/api.js'
       disabledCheck(e){
         if(!this.domList[e]) return true
         return this.domList[e].offsetWidth<=this.domList[e].parentNode.offsetWidth
+      },
+      // 获取销售下拉列表
+      saleSelect(){
+        customInterence.sellerSelectList({}).then(res=>{
+          console.log(res)
+          this.saleList = res.Data.List || []
+        })
       }
     },
     mounted(){
@@ -323,18 +378,17 @@ import {customInterence} from '@/api/api.js'
       background-color: white;
       border-radius: 4px;
       .search-box{
-        margin-left: -20px;
         display: flex;
         align-items: center;
         flex-wrap: wrap;
         .search-item{
           width: 232px;
-          margin: 0 0 8px 20px;
+          margin: 0 0 8px 0;
         }
         .date-box{
           display: flex;
           align-items: center;
-          margin: 0 0 8px 20px;
+          margin: 0 0 8px 0;
           .composition-button-tabs{
             white-space: nowrap;
             .date-button{
@@ -468,4 +522,7 @@ import {customInterence} from '@/api/api.js'
       }
     }
   }
+  .el-form-item{
+    margin-bottom: 0;
+  }
 </style>

+ 4 - 2
src/views/dataReport_manage/equityCustomStatistics.vue

@@ -98,7 +98,7 @@
         </div>
       </div>
       <div class="tabs-box">
-        <div class="tabs-box-confirm">
+        <div class="tabs-box-confirm" v-if="filterObj.data_type =='续约客户'">
           <div style="margin-bottom: 0px" class="tabs-box-confirm" v-for="(item, index) in packageTypeList" :key="item">
             <div :class="['confirm-box-li', PackageDifference == item && 'active']" @click="notPackageDifferenceChange(item)">{{ item }}</div>
             <div v-if="index != 2" class="center-line"></div>
@@ -420,7 +420,7 @@ export default {
       this.page_no = 1;
       this.getTableData();
     },
-    notPackageDifferenceChange(type) {
+    notPackageDifferenceChange(type) {      
       if (this.PackageDifference == type) {
         this.PackageDifference = "";
       } else {
@@ -496,6 +496,8 @@ export default {
     },
     /* 切换数据类型 */
     toggleType(label) {
+      console.log(this.filterObj.data_type);
+      
       this.filterObj.data_type = label;
       this.incrementTableColums = equityTableColums(this.filterObj.data_type);
       this.noRenewalReasonId = "";

+ 63 - 51
src/views/rai_manage/components/addChoiceness.vue

@@ -61,8 +61,8 @@
             <div v-show="industryIndex == index">
               <RichText v-model="item.BodyChartSummary" :ref="'logic' + index" :spareId="'logictest' + index" :isText="contentTextLogic" />
               <draggable :list="item.List" animation="300" class="classification" filter=".addIndustrial" :move="onMove" @update="ificationSortChange">
-                <div v-for="(val, num) in item.List" :key="val.IndustrialSubjectId" class="industrial" @click="ificationIndustrialBtn(val, num)" :class="num == ificationIndustrial ? 'pitch' : ''">
-                  <span style="margin-right: 19px">{{ val.IndustrialSubjectName }}</span>
+                <div v-for="(val, num) in item.List" :key="val.ShowName" class="industrial" @click="ificationIndustrialBtn(val, num)" :class="num == ificationIndustrial ? 'pitch' : ''">
+                  <span style="margin-right: 19px">{{ val.ShowName }}</span>
                   <span v-if="num == ificationIndustrial">
                     <img src="~@/assets/img/icons/edit1.png" style="width: 12px; height: 12px; marginright: 10px" @click="editText(val, num)" />
                     <i class="el-icon-close" @click="deleteClassify(val, num)"></i>
@@ -70,7 +70,7 @@
                 </div>
                 <div class="addIndustrial" @click="addMulti" v-if="industryIndex == index">
                   <i class="el-icon-plus"></i>
-                  <span>添加标的</span>
+                  <span>添加标的/赛道</span>
                 </div>
               </draggable>
               <template v-for="(val, num) in item.List">
@@ -123,7 +123,7 @@
         <span style="font-size: 16px">{{ dialogText }}</span>
       </div>
       <div class="dlg-content">
-        <el-autocomplete class="inline-input" v-model="stateValue" :trigger-on-focus="false" :fetch-suggestions="handleSearchResult" placeholder="请输入标的名称" clearable></el-autocomplete>
+        <el-autocomplete class="inline-input" v-model="stateValue" :trigger-on-focus="false" :fetch-suggestions="handleSearchResult" placeholder="请输入标的或赛道名称" clearable></el-autocomplete>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button v-if="dialogText == '编辑'" type="primary" @click="editconfirmPerson">确定</el-button>
@@ -337,6 +337,13 @@ export default {
         .then(() => {
           this.industryList[this.industryIndex].List.splice(index, 1);
           this.ificationIndustrial = 0;
+          let itemList = this.industryList[0].List[0];
+          this.industrialSubjectName = itemList.IndustrialManagementName || "";
+          this.overviewList = {
+            ArticleId: itemList.OverviewArticleId,
+            Title: itemList.OverviewArticleTitle,
+            IsShowOverviewArticle: itemList.IsShowOverviewArticle,
+          };
           this.$message({
             type: "success",
             message: "删除成功!",
@@ -351,7 +358,7 @@ export default {
     },
     //添加产业
     addMulti() {
-      this.dialogText = "添加标的";
+      this.dialogText = "添加标的/赛道";
       this.addDialogVisible = true;
     },
     //弹框的取消事件
@@ -362,7 +369,7 @@ export default {
     //弹框的确认事件
     async confirmPerson() {
       if (this.stateValue) {
-        const arr = this.subjectList.find((item) => item.SubjectName === this.stateValue);
+        const arr = this.subjectList.find((item) => item.ShowName === this.stateValue);
         if (!arr) {
           this.$message.error("输入正确的标的");
           return;
@@ -373,34 +380,35 @@ export default {
         });
         if (res.Ret === 200) {
           overviewList = res.Data;
-        }
-        this.industryList.forEach((item) => {
-          if (item.ChartPermissionId == this.chartPermissionId) {
-            if (item.List.length > 0) {
-              var isNext = item.List.some((item) => item.IndustrialSubjectName == arr.SubjectName);
+          this.industryList.forEach((item) => {
+            if (item.ChartPermissionId == this.chartPermissionId) {
+              if (item.List.length > 0) {
+                var isNext = item.List.some((item) => item.IndustrialSubjectName == arr.ShowName);
+              }
+              if (isNext) return this.$message.error("标的重复!");
+              item.List.push({
+                Body: "",
+                ChartPermissionId: this.chartPermissionId,
+                IndustrialManagementId: arr.IndustrialManagementId + "",
+                IndustrialManagementName: arr.IndustryName,
+                IndustrialSubjectId: arr.IndustrialSubjectId + "",
+                IndustrialSubjectName: arr.SubjectName,
+                ShowName: arr.ShowName,
+                CompanyLabel: [{ name: "", value: item.List.length + 1 }],
+                OverviewArticleId: overviewList && overviewList.ArticleId,
+                OverviewArticleTitle: overviewList && overviewList.Title,
+                IsShowOverviewArticle: overviewList && overviewList.IsShowOverviewArticle,
+              });
             }
-            if (isNext) return this.$message.error("标的重复!");
-            item.List.push({
-              Body: "",
-              ChartPermissionId: this.chartPermissionId,
-              IndustrialManagementId: arr.IndustrialManagementId + "",
-              IndustrialManagementName: arr.IndustryName,
-              IndustrialSubjectId: arr.IndustrialSubjectId + "",
-              IndustrialSubjectName: arr.SubjectName,
-              CompanyLabel: [{ name: "", value: item.List.length + 1 }],
-              OverviewArticleId: overviewList.ArticleId,
-              OverviewArticleTitle: overviewList.Title,
-              IsShowOverviewArticle: overviewList.IsShowOverviewArticle,
-            });
-          }
-        });
+          });
+        }
       }
       this.stateValue = "";
       this.addDialogVisible = false;
     },
     async editconfirmPerson() {
       if (this.stateValue) {
-        const arr = this.subjectList.find((item) => item.SubjectName === this.stateValue);
+        const arr = this.subjectList.find((item) => item.ShowName === this.stateValue);
         if (!arr) {
           this.$message.error("输入正确的标的");
           return;
@@ -411,29 +419,32 @@ export default {
         });
         if (res.Ret === 200) {
           overviewList = res.Data;
-        }
-        this.industryList.forEach((item) => {
-          if (item.ChartPermissionId == this.chartPermissionId) {
-            if (item.List.length > 0) {
-              var isNext = item.List.some((item) => item.IndustrialSubjectName == arr.SubjectName);
+          this.overviewList = overviewList;
+          this.industryList.forEach((item) => {
+            if (item.ChartPermissionId == this.chartPermissionId) {
+              if (item.List.length > 0) {
+                var isNext = item.List.some((item) => item.IndustrialSubjectName == arr.SubjectName);
+              }
+              if (isNext) return this.$message.error("标的重复!");
+              const obj = {
+                Body: (this.$refs.twoRich && this.$refs.twoRich.value) || "",
+                ChartPermissionId: this.chartPermissionId,
+                IndustrialManagementId: arr.IndustrialManagementId + "",
+                IndustrialManagementName: arr.IndustryName,
+                IndustrialSubjectId: arr.IndustrialSubjectId + "",
+                IndustrialSubjectName: arr.SubjectName,
+                ShowName: arr.ShowName,
+                CompanyLabel:
+                  item.List[this.editNum].CompanyLabel && item.List[this.editNum].CompanyLabel.length > 0 ? item.List[this.editNum].CompanyLabel : [{ name: "", value: item.List.length + 1 }],
+                OverviewArticleId: overviewList.ArticleId,
+                OverviewArticleTitle: overviewList.Title,
+                IsShowOverviewArticle: overviewList.IsShowOverviewArticle,
+              };
+              item.List.splice(this.editNum, 1, obj);
+              this.industrialSubjectName = arr.IndustryName || "";
             }
-            if (isNext) return this.$message.error("标的重复!");
-            const obj = {
-              Body: this.$refs.twoRich.value || "",
-              ChartPermissionId: this.chartPermissionId,
-              IndustrialManagementId: arr.IndustrialManagementId + "",
-              IndustrialManagementName: arr.IndustryName,
-              IndustrialSubjectId: arr.IndustrialSubjectId + "",
-              IndustrialSubjectName: arr.SubjectName,
-              CompanyLabel:
-                item.List[this.editNum].CompanyLabel && item.List[this.editNum].CompanyLabel.length > 0 ? item.List[this.editNum].CompanyLabel : [{ name: "", value: item.List.length + 1 }],
-              OverviewArticleId: overviewList.ArticleId,
-              OverviewArticleTitle: overviewList.Title,
-              IsShowOverviewArticle: overviewList.IsShowOverviewArticle,
-            };
-            item.List.splice(this.editNum, 1, obj);
-          }
-        });
+          });
+        }
       }
       this.stateValue = "";
       this.addDialogVisible = false;
@@ -442,11 +453,11 @@ export default {
     async handleSearchResult(data, cb) {
       if (data) {
         cb([]);
-        let res = await raiInterface.industrialSubjectSearch({ KeyWord: data, ChartPermissionId: this.chartPermissionId });
+        let res = await raiInterface.industrialAndSubjectSearch({ KeyWord: data, ChartPermissionId: this.chartPermissionId });
         if (res.Ret === 200) {
           if (res.Data.List && res.Data.List.length > 0) {
             let arr = res.Data.List.map((item) => {
-              return { value: item.SubjectName, ...item };
+              return { value: item.ShowName, ...item };
             });
             this.subjectList = arr;
             cb(arr);
@@ -464,6 +475,7 @@ export default {
               key.CompanyLabel && key.CompanyLabel.length > 0 && isText.push(key.CompanyLabel.some((val) => val.name));
             });
           });
+
           if (isText && isText.includes(false)) {
             return this.$message.error("请输入公司标签");
           }

+ 1 - 1
src/views/rai_manage/components/matchingDlg.vue

@@ -55,7 +55,7 @@ export default {
     async remoteMethod(query) {
       if (query !== "") {
         this.dataQueryList = [];
-        const res = await raiInterface.activityMeetMatchingList({ KeyWord: query });
+        const res = await raiInterface.activityMeetMatchingList({ KeyWord: query, ActivityId: this.matchingId, });
         if (res.Ret === 200) {
           let obj = {};
           res.Data.List &&

+ 3 - 3
src/views/rai_manage/components/report_preview/choicenessPre.vue

@@ -28,7 +28,7 @@
           <div class="industry-name">{{ item.ChartPermissionName }}</div>
           <div class="industry-subject">
             <div class="subject-item" @click="positionSubject(key)" v-for="key in item.ListSubject" :key="key.IndustrialSubjectId">
-              <a :href="`#miao${key.IndustrialSubjectId}`">{{ key.SubjectName }}</a>
+              <a :href="`#miao${key.IndustrialSubjectId}${key.SubjectName}`">{{ key.ShowName }}</a>
               <img v-if="key.IsNew" class="icon_subject" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_subject.png" />
             </div>
           </div>
@@ -50,8 +50,8 @@
               公司综述报告请
               <span @click="goArticle(it.OverviewArticleId)"> 点击查看 </span>
             </div>
-            <div class="company-label" :id="`miao${it.IndustrialSubjectId}`">
-              <span class="item">{{ it.SubjectName }}</span>
+            <div class="company-label" :id="`miao${it.IndustrialSubjectId}${it.SubjectName}`">
+              <span class="item">{{ it.ShowName }}</span>
               <img v-if="it.IsNew" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/new_report.png" />
               <span class="item item-subject-name" v-for="val in it.CompanyLabel" :key="val"># {{ val }}</span>
             </div>

+ 3 - 3
src/views/rai_manage/cygxManage/components/lableDlg.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="container lable-add-content">
-    <el-dialog :title="visibleTitle" :visible.sync="showRegularDlg" width="600px" v-dialogDrag :close-on-click-modal="false" :modal-append-to-body="false" center @close="handleClose">
+    <el-dialog :title="visibleTitle" :visible.sync="showRegularDlg" width="700px" v-dialogDrag :close-on-click-modal="false" :modal-append-to-body="false" center @close="handleClose">
       <div v-if="dataRegular.TagType == 1">
         <div v-for="(item, index) in addDataList" :key="index" class="add-name-item">
           <el-autocomplete style="width: 90%" v-model="item.name" clearable :fetch-suggestions="querySearchAsync" @select="tableSelectHandel(item)" placeholder="请输入内容"></el-autocomplete>
@@ -58,7 +58,7 @@ export default {
           : this.dataRegular.TagType == 4
           ? "所有问答系列音频"
           : this.dataRegular.TagType == 5
-          ? "医药-趋势观察 ,科技-产业跟踪 ,智造-产业跟踪 ,消费-月度调研"
+          ? "医药-趋势观察 ,科技-产业跟踪 ,智造-产业跟踪 ,消费-月度调研,策略-每日复盘,固收-债市复盘"
           : "";
       return str;
     },
@@ -164,7 +164,7 @@ export default {
 <style scoped lang="scss">
 .lable-add-content {
   .text-content {
-    width: 487px;
+    width: 620px;
     height: 40px;
     line-height: 40px;
     border-radius: 4px;

+ 3 - 0
src/views/roadshow_manage/compononts/addActivityCellDia.vue

@@ -167,6 +167,9 @@
             hide-area
           ></v-distpicker> -->
           <search-dist-picker 
+            :provinceInfo="formData.roadshowCity[0]"
+            :cityInfo="formData.roadshowCity[1]"
+            :areaInfo="formData.District||''"
             :showArea="isRaiRole"
             @selected="onChangeCity($event,'roadshow')"/>
         </el-form-item>

+ 2 - 2
src/views/roadshow_manage/compononts/addMatterDia.vue

@@ -70,9 +70,9 @@
         <el-form-item label="事项内容" prop="matterContent">
           <el-input v-model.trim="formData.matterContent" clearable placeholder="请输入事项内容"></el-input>
         </el-form-item>
-        <el-form-item label="修改原因" prop="EditReason" v-if="edit_matter_id">
+        <!-- <el-form-item label="修改原因" prop="EditReason" v-if="edit_matter_id">
           <el-input v-model.trim="formData.EditReason" clearable placeholder="请输入修改原因"></el-input>
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <div class="btn-group">
         <el-button @click="cancel">取消</el-button>

+ 8 - 14
src/views/roadshow_manage/myCalendar.vue

@@ -141,7 +141,7 @@
             </template>
             <!-- 事项的操作栏由后端控制 -->
             <template v-if="default_tab===5">
-                <span class="editsty" v-if="row.EditReason" @click="showReason(row)">最近修改记录</span>
+                <!-- <span class="editsty" v-if="row.EditReason" @click="showReason(row)">最近修改记录</span> -->
                 <span
                   class="editsty"
                   v-if="!row.ButtonAuth.EditDisabled"
@@ -581,18 +581,10 @@ export default {
     /* 编辑活动 或事项 */
     editActivityHandle(row) {
       this.isRaiEditType ='RaiEdit'
-      this.raiEditMatterHandle(row)
-      return
-      const { RsCalendarId,RsCalendarResearcherId,RsMattersId,MatterContent,StartDate,StartTime,EndTime,EndDate } = row;
-      //编辑活动
-      if(!RsMattersId) {
-        this.resubmitData = this.editInfoBack(row,2);
-        this.edit_id = RsCalendarId;
-        this.edit_rs_id = RsCalendarResearcherId;
-        this.isActivityBtnDiaShow = true;
-      } else {
-        //编辑事项
-        this.editMatterHandle({ RsMattersId,StartDate,StartTime,EndDate,EndTime,MatterContent });
+      if(this.default_tab==5){
+        this.editMatterHandle(row);
+      }else{
+        this.raiEditMatterHandle(row)
       }
     },
 
@@ -691,7 +683,7 @@ export default {
       }
     },
 
-    raiEditMatterHandle({ ActivityType,RoadshowType,RoadshowPlatform,City,Province,CompanyId,CompanyName,ResearcherId,RsCalendarResearcherId,Theme,CooperationName,ActivityCategory,StartDate,EndDate,RsCalendarId,RsMattersId,StartTime,EndTime,MatterContent,EnglishCompany}){
+    raiEditMatterHandle({ ActivityType,RoadshowType,RoadshowPlatform,City,Province,CompanyId,CompanyName,ResearcherId,RsCalendarResearcherId,Theme,CooperationName,ActivityCategory,StartDate,EndDate,RsCalendarId,RsMattersId,StartTime,EndTime,MatterContent,EnglishCompany,District=''}){
         this.sonData = {
                   activityType: ActivityType, // 活动类型
                   roadshowType: RoadshowType, // 路演形式
@@ -706,6 +698,8 @@ export default {
                   meetingTheme: Theme, // 会议主题
                   partnersName: CooperationName, // 合作方名称
                   activityClass: ActivityCategory, // 活动类别
+                  District: District || '',
+
                   selectResearchers: [
                     // 选择的研究员
                     {

+ 80 - 14
src/views/seal_manage/approvalList.vue

@@ -2,6 +2,14 @@
 <div class="seal-approval-wrap">
   <div class="content">
       <div class="select-wrap" style="margin-bottom:30px">
+        <el-select v-model="belongCompany" placeholder="请选择归属公司" @change="handleSelectChange" clearable style="margin-right:20px">
+          <el-option
+            v-for="item in belongCompanyOption"
+            :key="item"
+            :label="item"
+            :value="item">
+          </el-option>
+        </el-select>
         <el-select v-model="contractTypeVal" placeholder="合同类型" @change="handleSelectChange" clearable style="margin-right:20px">
           <el-option
             v-for="item in contractTypeList"
@@ -49,15 +57,25 @@
           clearable
           @input="handleSearch">
         </el-input>
-        <el-button 
-          type="primary" 
-          style="float:right" 
-          @click="$router.push('/addSeal')" 
-          v-if="['ficc_seller','rai_seller','compliance'].includes(RoleType)"
-        >添加用印</el-button>
+
+        <div style="float:right" >
+          <el-button 
+            type="primary" 
+            @click="$router.push('/addSeal')" 
+            v-if="['ficc_seller','rai_seller','compliance'].includes(RoleType)"
+          >添加用印</el-button>
+          <a :href="exportUrl" download v-if="['admin','ficc_admin','compliance'].includes(RoleType)">
+            <el-button type="primary">导出</el-button>
+          </a>
+        </div>
       </div>
       <div class="list-wrap">
         <el-table :data="tableList" border>
+          <el-table-column align="center"  prop="CompanyName" label="归属公司">
+            <template slot-scope="scope"> 
+              <span>{{scope.row.AffiliatedCompany}}</span>
+            </template>
+          </el-table-column>
           <el-table-column align="center"  prop="CompanyName" label="客户名称">
             <template slot-scope="scope"> 
               <span>{{scope.row.CompanyName}}</span>
@@ -118,6 +136,20 @@
             <table class="table-wrap" >
               <tbody>
                 <tr>
+                  <td class="table-item width-50">
+                    <p v-if="detail.OpButton.CheckEdit">
+                      <span>所属公司:</span>
+                      <el-select v-model="approvalEditData.AffiliatedCompany" placeholder="请选择">
+                        <el-option
+                          v-for="item in belongCompanyOption"
+                          :key="item"
+                          :label="item"
+                          :value="item">
+                        </el-option>
+                      </el-select>
+                    </p>
+                    <p v-else>所属公司:{{detail.SealDetail.AffiliatedCompany}}</p>
+                  </td>
                   <td class="table-item width-50">
                     <p v-if="detail.OpButton.CheckEdit">
                       <span>用印用途:</span>
@@ -133,14 +165,16 @@
                     </p>
                     <p v-else>用印用途:{{detail.SealDetail.Use}}</p>
                   </td>
-                  <td class="table-item width-50">所属销售:{{detail.SealDetail.UserName}}</td>
                 </tr>
                 <tr>
+                  <td class="table-item width-50">所属销售:{{detail.SealDetail.UserName}}</td>
                   <td class="table-item width-50">客户名称:{{detail.SealDetail.CompanyName}}</td>
+                </tr>
+                <tr>
                   <td class="table-item width-50">社会信用码:{{detail.SealDetail.CreditCode}}</td>
+                  <td class="table-item width-50">合同类型:{{detail.SealDetail.ServiceType}}</td>  
                 </tr>
                 <tr>
-                  <td class="table-item width-50">合同类型:{{detail.SealDetail.ServiceType}}</td>
                   <td class="table-item width-50">
                     <p v-if="detail.OpButton.CheckEdit">
                       <span>文件份数:</span>
@@ -149,8 +183,6 @@
                     </p>
                     <p v-else>文件份数:{{detail.SealDetail.FileNum}}</p>
                   </td>
-                </tr>
-                <tr>
                   <td class="table-item">
                     <p v-if="detail.OpButton.CheckEdit">
                       <span>加盖印章:</span>
@@ -158,12 +190,15 @@
                         <el-option label="合同章" value="合同章"></el-option>
                         <el-option label="公章" value="公章"></el-option>
                         <el-option label="法人章" value="法人章"></el-option>
+                        <el-option label="电子合同章" value="电子合同章"></el-option>
                       </el-select>
                     </p>
                     <p v-else>加盖印章:{{detail.SealDetail.SealType}}</p>
                   </td>
-                  <td class="table-item">实际使用方:{{detail.SealDetail.UseCompanyName||detail.SealDetail.CompanyName}}</td>
                 </tr>
+                <tr>
+                  <td class="table-item" colspan="2">实际使用方:{{detail.SealDetail.UseCompanyName||detail.SealDetail.CompanyName}}</td>
+                </tr>  
                 <tr>
                   <td class="table-item" colspan="2" style="text-align: left">
                     <p v-if="detail.OpButton.CheckEdit" style="display:flex">
@@ -290,6 +325,7 @@ export default {
         this.optList=[]
         this.stepArr=[]
         this.approvalEditData={
+          AffiliatedCompany:'',//所属公司
           Use:'',//用印用途
           Type:'',//加盖印章 类型
           FileNum:'',//文件份数
@@ -315,6 +351,21 @@ export default {
       
     }
   },
+  computed: {
+    exportUrl() {
+      let auth = localStorage.getItem("auth") || "";
+      let salesArr=[]
+			if(this.seller.length){
+				salesArr=this.seller.map(item=>{
+					return item[item.length-1]
+				})
+			}
+
+      return `${process.env.API_ROOT}/seal/getApprovalPageList?IsExport=true&${auth}&PageSize=${this.pageSize}&CurrentIndex=${this.page}&ContractType=${this.contractTypeVal}&Status=${this.sealStatusVal}&SellerId=${salesArr.join(',')}&StartTime=${this.time&&this.time[0]||''}&EndTime=${this.time&&this.time[1]||''}&Keyword=${this.searchVal}&AffiliatedCompany=${this.belongCompany}`
+        
+      
+    }
+  },
   data () {
     return {
       RoleType:localStorage.getItem('Role')||'',
@@ -344,6 +395,7 @@ export default {
       optList:[],
       stepArr:[],//审批流程数据
       approvalEditData:{
+        AffiliatedCompany:'',//所属公司
         Use:'',//用印用途
         Type:'',//加盖印章 类型
         FileNum:'',//文件份数
@@ -369,11 +421,15 @@ export default {
       },//上传/更新附件文件数据
       showAttachment:false,// 是否显示预览附件弹窗
       attachmentUrls:[],// 附件列表
+
+      belongCompany: '',//归属公司
+      belongCompanyOption: []
     }
   },
   created () {
     this.getSellerList();
     this.getSealApprovalList()
+    this.getBelongCompanyOptions()
     if(['ficc_seller','rai_seller'].includes(this.RoleType)){
       this.sealStatusList=['待审批','已撤回','处理中','已审批','已驳回','已签回','已作废']
     }else{
@@ -381,6 +437,12 @@ export default {
     }
   },
   methods: {
+    async getBelongCompanyOptions() {
+      const res = await sealInterence.getBelongCompany()
+      if(res.Ret !==200 ) return
+      this.belongCompanyOption = res.Data || []
+    },
+
     //获取所属销售列表
     getSellerList() {
       contractInterface.getSellerList().then((res) => {
@@ -405,7 +467,8 @@ export default {
         SellerId:salesArr.join(','),
         StartTime:this.time&&this.time[0]||'',
         EndTime:this.time&&this.time[1]||'',
-        Keyword:this.searchVal
+        Keyword:this.searchVal,
+        AffiliatedCompany: this.belongCompany
       })
       if(res.Ret===200){
         this.tableList=res.Data.List
@@ -435,8 +498,10 @@ export default {
       this.getSealOprationList(e.SealId)
       const res=await sealInterence.getSealDetail({SealId:e.SealId})
       if(res.Ret==200){
+        console.log(res.Data)
         this.showDetail=true
         this.detail=res.Data
+        this.approvalEditData.AffiliatedCompany=res.Data.SealDetail.AffiliatedCompany
         this.approvalEditData.Use=res.Data.SealDetail.Use
         this.approvalEditData.Type=res.Data.SealDetail.SealType.split(',')
         this.approvalEditData.FileNum=res.Data.SealDetail.FileNum
@@ -581,7 +646,8 @@ export default {
             const flag2=Number(this.approvalEditData.FileNum)===Number(this.detail.SealDetail.FileNum)
             const flag3=this.approvalEditData.Type.join(',')===this.detail.SealDetail.SealType
             const flag4=this.approvalEditData.Remark===this.detail.SealDetail.Remark
-            if(flag1&&flag2&&flag3&&flag4){
+            const flag5=this.approvalEditData.AffiliatedCompany===this.detail.SealDetail.AffiliatedCompany
+            if(flag1&&flag2&&flag3&&flag4&&flag5){
               this.handleApprovalPass()
             }else{
               this.handleApprovePassModify()
@@ -625,6 +691,7 @@ export default {
         Remark:this.approvalEditData.Remark,
         SealType:this.approvalEditData.Type.join(','),
         Use:this.approvalEditData.Use,
+        AffiliatedCompany:this.approvalEditData.AffiliatedCompany,
       })
       if(res.Ret==200){
         this.$message.success('审批成功')
@@ -883,7 +950,6 @@ export default {
       font-weight: bold;
       color: #333;
       float: left;
-      margin-top: 4px;
     }
     .user-box{
       padding-left: 100px;

+ 31 - 0
src/views/seal_manage/updateSeal.vue

@@ -8,6 +8,19 @@
     >
       <div class="one-part">
         <div class="box">
+          <el-form-item label="归属公司:" prop="AffiliatedCompany">
+            <el-select v-model.trim="sealForm.AffiliatedCompany" clearable>
+              <el-option
+                v-for="item in belongCompanyOption"
+                :key="item"
+                :label="item"
+                :value="item"
+              ></el-option>
+            </el-select>
+            <el-tooltip class="item" effect="dark" content="归属公司:申请用章公司" placement="top">
+              <i class="el-icon-warning"></i>
+            </el-tooltip>
+          </el-form-item>
           <el-form-item label="用印用途:" prop="Use">
             <el-select v-model.trim="sealForm.Use" clearable>
               <el-option
@@ -176,9 +189,11 @@ export default {
         Remark: "", //审批备注
         fileList: [], //合同附件
         ContractId: 0, //合同id(默认为0)
+        AffiliatedCompany:''
       },
       sealRules: {
         //表单校验规则
+        AffiliatedCompany: [{ required: true, message: "请选择归属公司", trigger: "blur" }],
         Use: [{ required: true, message: "请选择用印用途", trigger: "blur" }],
         CompanyName: [
           { required: true, message: "请选择客户名称", trigger: "blur" },
@@ -221,8 +236,11 @@ export default {
         { label: "合同章", value: 1 },
         { label: "公章", value: 2 },
         { label: "法人章", value: 3 },
+        { label: "电子合同章", value: 4 },
       ],
       isWatch: true, // 控制watch是否触发
+
+      belongCompanyOption:[]
     };
   },
   created() {
@@ -230,6 +248,7 @@ export default {
     if (this.sealId) {
       this.getsealApprovalDetail();
     }
+    this.getBelongCompanyOptions()
   },
   computed: {
     // 用印id,有则表示编辑,无表示新增
@@ -245,6 +264,15 @@ export default {
     },
   },
   methods: {
+    async getBelongCompanyOptions() {
+      const res = await sealInterence.getBelongCompany()
+      if(res.Ret !==200 ) return
+      this.belongCompanyOption = res.Data || []
+      if (!this.sealId) {
+        this.sealForm.AffiliatedCompany=this.belongCompanyOption.length?this.belongCompanyOption[0]:''
+      }
+    },
+
     // 获取用印详情
     async getsealApprovalDetail() {
       try {
@@ -269,6 +297,7 @@ export default {
           this.sealForm.SealType = SealDetail.SealType.split(",");
           this.sealForm.ServiceType = SealDetail.ServiceType;
           this.sealForm.UseCompanyName = SealDetail.UseCompanyName;
+          this.sealForm.AffiliatedCompany = SealDetail.AffiliatedCompany;
           this.sealForm.source =
             SealDetail.ContractId > 0 ? "系统合同" : "上传附件";
           // 打开监听
@@ -385,6 +414,7 @@ export default {
           ServiceType: this.sealForm.ServiceType,
           Use: this.sealForm.Use,
           UseCompanyName: this.sealForm.UseCompanyName,
+          AffiliatedCompany: this.sealForm.AffiliatedCompany,
         };
         let res = {};
         if (this.sealId) {
@@ -439,6 +469,7 @@ export default {
         Remark: "", //审批备注
         fileList: [], //合同附件
         ContractId: 0, //合同id(默认为0)
+        AffiliatedCompany:''
       };
       // 清除校验提示
       this.$nextTick(() => {

+ 1 - 1
src/views/system_manage/approvalManage.vue

@@ -99,7 +99,7 @@ import {departInterence} from '@/api/api.js'
 const config={
   '客户审批':[{id:1,name:'FICC部门'},{id:2,name:'权益部门'}],
   '合同审批':[{id:3,name:'FICC部门'},{id:4,name:'权益部门'}],
-  '用印审批':[{id:5,name:'合同章'},{id:6,name:'公章/法人章'}]
+  '用印审批':[{id:5,name:'合同章/电子合同章'},{id:6,name:'公章/法人章'}]
 }
 export default {
   data () {