Jelajahi Sumber

Merge branch 'master' of http://git.cc-lotus.info/financial_platform/admin-cms

wq 5 tahun lalu
induk
melakukan
c003692789
39 mengubah file dengan 5465 tambahan dan 65 penghapusan
  1. 13 57
      src/layout/companyidentify/detailInfo.vue
  2. 3 4
      src/layout/companyidentify/newsInfo.vue
  3. 339 0
      src/layout/financingTNewAssign/tNewAssignForm.vue
  4. 349 0
      src/layout/financingTNewAssign/tNewAssignList.vue
  5. 367 0
      src/layout/financingTUrgeHandle/seeList.vue
  6. 309 0
      src/layout/financingTUrgeHandle/tUrgeHandleForm.vue
  7. 355 0
      src/layout/financingTUrgeHandle/tUrgeHandleList.vue
  8. 7 0
      src/layout/institution/detailInfo.vue
  9. 94 0
      src/layout/intelligentDocking/detail.vue
  10. 116 0
      src/layout/intelligentDocking/list.vue
  11. 26 2
      src/layout/layout-part/menus.vue
  12. 340 0
      src/layout/tNewAssign/tNewAssignForm.vue
  13. 349 0
      src/layout/tNewAssign/tNewAssignList.vue
  14. 367 0
      src/layout/tUrgeHandle/seeList.vue
  15. 309 0
      src/layout/tUrgeHandle/tUrgeHandleForm.vue
  16. 355 0
      src/layout/tUrgeHandle/tUrgeHandleList.vue
  17. 54 0
      src/router/index.js
  18. 43 0
      src/store/claimneed.js
  19. 5 0
      src/store/financeclaim.js
  20. 43 0
      src/store/follow.js
  21. 12 0
      src/store/index.js
  22. 43 0
      src/store/intelligentDocking.js
  23. 52 0
      src/store/intelligentFollow.js
  24. 46 0
      src/store/tNewAssign.js
  25. 46 0
      src/store/tUrgeHandle.js
  26. 174 0
      src/views/financingTNewAssign/detail.vue
  27. 110 0
      src/views/financingTNewAssign/index.vue
  28. 133 0
      src/views/financingTUrgeHandle/detail.vue
  29. 110 0
      src/views/financingTUrgeHandle/index.vue
  30. 110 0
      src/views/financingTUrgeHandle/seeIndex.vue
  31. 15 1
      src/views/institution/detail.vue
  32. 77 0
      src/views/intelligentDocking/detail.vue
  33. 67 0
      src/views/intelligentDocking/index.vue
  34. 163 0
      src/views/tNewAssign/detail.vue
  35. 110 0
      src/views/tNewAssign/index.vue
  36. 133 0
      src/views/tUrgeHandle/detail.vue
  37. 110 0
      src/views/tUrgeHandle/index.vue
  38. 110 0
      src/views/tUrgeHandle/seeIndex.vue
  39. 1 1
      vue.config.js

+ 13 - 57
src/layout/companyidentify/detailInfo.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="detailInfo">
     <el-row>
-       <el-col :span="24" class="top">
+      <el-col :span="24" class="top">
         <span class="shu"></span><span class="title">{{ formTitle }}</span>
       </el-col>
       <el-col :span="24" class="form">
@@ -11,76 +11,32 @@
               <span>{{ ruleForm.status === '0' ? '认证中' : ruleForm.status === '1' ? '认证通过' : '认证失败' }}</span>
             </el-form-item>
           </span>
-          <el-form-item label="营业执照图片:">
-            <el-image :src="ruleForm.business_license" style="width:100px" @click="showLicense(ruleForm.business_license)"></el-image>
-          </el-form-item>
           <el-form-item label="企业名称:">
             <el-input v-model="ruleForm.company_name" disabled></el-input>
           </el-form-item>
-          <el-form-item label="成立日期:">
-            <el-input v-model="ruleForm.establish_date" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="营业到期时间:">
-            <el-input v-model="ruleForm.due_date" disabled></el-input>
+          <el-form-item label="统一社会信用代码:">
+            <el-input v-model="ruleForm.reg_num" disabled></el-input>
           </el-form-item>
           <el-form-item label="企业类型:">
             <el-input v-model="ruleForm.type" disabled></el-input>
           </el-form-item>
-          <el-form-item label="所属行业:">
-            <el-select v-model="ruleForm.profession_one" placeholder="请选择" disabled> </el-select>
-            <el-select v-model="ruleForm.profession_two" placeholder="请选择" disabled> </el-select>
-            <el-select v-model="ruleForm.profession_three" placeholder="请选择" disabled> </el-select>
-            <el-select v-model="ruleForm.profession_four" placeholder="请选择" disabled> </el-select>
-          </el-form-item>
-          <el-form-item label="统一社会信用代码:">
-            <el-input v-model="ruleForm.code" disabled></el-input>
+          <el-form-item label="法定代表人:">
+            <el-input v-model="ruleForm.person" disabled></el-input>
           </el-form-item>
           <el-form-item label="注册资本(万):">
-            <el-input v-model="ruleForm.registered_capital" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="资金总额(万):">
-            <el-input v-model="ruleForm.total_assets" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="营业收入(万):">
-            <el-input v-model="ruleForm.taking" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="从业人员数量:">
-            <el-input v-model="ruleForm.number" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="企业所属类型:">
-            <el-select v-model="ruleForm.belong_type" placeholder="请选择" disabled> </el-select>
-          </el-form-item>
-          <el-form-item label="企业所属地:">
-            <el-select v-model="belong_addr_province" class="selects" placeholder="请选择" disabled> </el-select>
-            <el-select v-model="ruleForm.belong_addr_city" placeholder="请选择" disabled> </el-select>
-            <el-select v-model="ruleForm.belong_addr_area" placeholder="请选择" disabled> </el-select>
-          </el-form-item>
-          <el-form-item label="经营地址:">
-            <el-input v-model="ruleForm.business_addr" disabled></el-input>
+            <el-input v-model="ruleForm.capital" disabled></el-input>
           </el-form-item>
           <el-form-item label="注册地址:">
-            <el-input v-model="ruleForm.registered_addr" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="经营范围:">
-            <el-input v-model="ruleForm.business_scope" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="企业简介:">
-            <el-input v-model="ruleForm.introduction" type="textarea" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="身份证正面图:">
-            <el-image :src="ruleForm.card_front" style="width:100px" @click="showCardFront(ruleForm.card_front)"></el-image>
+            <el-input v-model="ruleForm.address" disabled></el-input>
           </el-form-item>
-          <el-form-item label="身份证背面图:">
-            <el-image :src="ruleForm.card_back" style="width:100px" @click="showCardBack(ruleForm.card_back)"></el-image>
-          </el-form-item>
-          <el-form-item label="法定代表人:">
-            <el-input v-model="ruleForm.representative" disabled></el-input>
+          <el-form-item label="成立日期:">
+            <el-input v-model="ruleForm.establish_date" disabled></el-input>
           </el-form-item>
-          <el-form-item label="法人证件号:">
-            <el-input v-model="ruleForm.representative_id" disabled></el-input>
+          <el-form-item label="营业到期时间:">
+            <el-input v-model="ruleForm.valid_period" disabled></el-input>
           </el-form-item>
-          <el-form-item label="法人手机号:">
-            <el-input v-model="ruleForm.representative_phone" disabled></el-input>
+          <el-form-item label="经营范围:">
+            <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 10 }" v-model="ruleForm.business" disabled></el-input>
           </el-form-item>
           <span v-if="ruleForm.status === '0'">
             <el-form-item>

+ 3 - 4
src/layout/companyidentify/newsInfo.vue

@@ -37,15 +37,14 @@
 
             <el-table-column type="index" label="序号" width="50" align="center"> </el-table-column>
             <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+            <el-table-column property="type" label="企业类型" align="center"> </el-table-column>
+            <el-table-column property="capital" label="注册资本" align="center"> </el-table-column>
+            <el-table-column property="person" label="法人代表" align="center"> </el-table-column>
             <el-table-column label="状态" align="center">
               <template slot-scope="scope">
                 <span style="margin-left: 10px">{{ scope.row.status === '0' ? '认证中' : scope.row.status === '1' ? '认证成功' : '认证失败' }}</span>
               </template>
             </el-table-column>
-            <el-table-column property="registered_capital" label="注册资本" align="center"> </el-table-column>
-            <el-table-column property="number" label="从业人员数量" align="center"> </el-table-column>
-            <el-table-column property="taking" label="营业收入" align="center"> </el-table-column>
-            <el-table-column property="type" label="企业类型" align="center"> </el-table-column>
             <el-table-column label="操作" align="center" width="300px">
               <template slot-scope="scope">
                 <!-- <el-button @click="handleClick(scope.row)" type="text"><i class="el-icon-view"></i></el-button> -->

+ 339 - 0
src/layout/financingTNewAssign/tNewAssignForm.vue

@@ -0,0 +1,339 @@
+<template>
+  <div id="tNewAssignForm">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <span class="shu"></span><span class="title">{{ formTitle }}</span>
+        </el-col>
+        <el-col :span="24" class="form">
+          <el-form :model="ruleForm" ref="ruleForm" label-width="160px" class="demo-ruleForm">
+            <el-col :span="12">
+              <el-form-item label="企业名称:">
+                <span>{{ ruleForm.company_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资金额(万元):">
+                <span>{{ ruleForm.money }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="联系人:">
+                <span>{{ ruleForm.person }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="手机号:">
+                <span>{{ ruleForm.phone }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="补充信息:">
+                <span>{{ ruleForm.remarks }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="担保方式:">
+                <span>{{ ruleForm.ensure_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望利率范围:">
+                <span>{{ `${ruleForm.mongey_min_rate}%~${ruleForm.mongey_max_rate}%` }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望融资期限(个月):">
+                <span>{{ `${ruleForm.claims_min_term}个月~${ruleForm.claims_max_term}个月` }}</span>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="12">
+              <el-form-item label="金融机构名称:">
+                <el-select v-model="ruleForm.jg_id" placeholder="请选择金融机构" @change="jgproListSelect" ref="jgSelect">
+                  <el-option v-for="item in jgList" :key="item._id" :label="item.name" :value="item._id"> </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="12">
+              <el-form-item label="产品名称:">
+                <el-select v-model="ruleForm.jg_pro_id" placeholder="请选择产品" ref="jgproSelect">
+                  <el-option v-for="item in jgproList" :key="item._id" :label="item.name" :value="item._id"> </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" class="clickBtn">
+              <el-button @click="submitForm">指派</el-button>
+              <el-button @click="resetForm">取消</el-button>
+            </el-col>
+
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import uploadImage from '@/layout/custom/uploadImage.vue';
+  /*import uploadFile from '@/layout/custom/uploadFile.vue';*/
+  import WangEditor from '@/components/wang-editor.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: institution } = createNamespacedHelpers('institution');
+  const { mapActions: financeclaims } = createNamespacedHelpers('financeclaim');
+  import _ from 'lodash';
+
+  export default {
+    name: 'tNewAssignForm',
+    props: {
+      ruleForm: null,
+      originalData: null,
+      jgList: null,
+      jgproList: null,
+    },
+    components: {
+      uploadImage,
+      /*uploadFile,*/
+      WangEditor,
+    },
+    data: () => ({
+      formTitle: '我要融资指派',
+      /*rules: {
+        title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+        type: [{ required: true }],
+        link: [{ required: false }],
+        issuing_organ: [{ required: true, message: '请输入发文机关', trigger: 'blur' }],
+        subject_classification: [{ required: true }],
+        subject_headings: [{ required: true }],
+        description: [{ required: true, message: '请输入内容', trigger: 'blur' }],
+      },*/
+    }),
+    created() {
+
+    },
+    mounted(){
+
+    },
+    computed: {
+    },
+    methods: {
+      ...tNewAssign(['create', 'delete', 'update', 'fetch', 'originalQuery']),
+      jgproListSelect(val) {
+        this.$set(this.ruleForm, 'jg_pro_id','');
+        this.$emit('jgproListSelect', { jg_id: val })
+      },
+      async submitForm() {
+        console.log(this.$refs['jgSelect'].selectedLabel);
+        console.log(this.$refs['jgproSelect'].selectedLabel);
+        let temp = JSON.parse(JSON.stringify(this.ruleForm));
+
+        if(temp.is_exist === '1'){
+         this.$message.error('已指派!');
+         return ;
+       }
+
+        const res = await this.originalQuery({ skip:0, limit:1, demand_id: this.ruleForm.demand_id, type: '2'});
+        if(res.total === 1){
+          this.$message.error('已指派!');
+          return ;
+        }
+
+        if(temp.jg_id === this.originalData.jg_id && temp.jg_pro_id === this.originalData.jg_pro_id){
+          this.$message.error('数据没有变化!');
+          return ;
+        }
+
+        if(!temp.jg_pro_id){
+          this.$message.error('请选择产品!');
+          return ;
+        }
+
+        temp.institution_name = this.$refs['jgSelect'].selectedLabel;
+        temp.product_name = this.$refs['jgproSelect'].selectedLabel
+        delete temp._id;
+        delete temp.is_exist;
+        delete temp.meta;
+        delete temp.information;
+        this.$emit('submitForm', { data: temp })
+      },
+      resetForm() {
+        this.$emit('resetForm');
+      },
+      uploadSuccess({ data }) {
+        this.$set(this.ruleForm, 'image', data.uri);
+      },
+      remove(file) {
+        this.$set(this.ruleForm, 'image', '')
+      },
+      uploadFileSuccess({ data,file }) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          this.$set(this.ruleForm.enclosure, this.ruleForm.enclosure.length,{name:file.name,url:data.uri});
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[{name:file.name,url:data.uri}]);
+        }
+      },
+      removeFile(file) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          let temp = this.ruleForm.enclosure.filter((val) => {
+            return val.url !== file.url;
+          });
+          this.$set(this.ruleForm, 'enclosure',temp);
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[]);
+        }
+      },
+      changeType(value){
+        if(value && value === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }else{
+          this.$set(this.rules, 'link',[{ required: false }]);
+        }
+      },
+      async checkType(value){
+        let res = await this.fetch(value);
+        if(res.data.type === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }
+      },
+      getDate(val) {
+        if(val){
+          return this.format(new Date(Number(val)),'yyyy年MM月dd');
+        }
+        return '';
+      },
+      format(date,formatStr){
+        formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+        formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+        formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+        return formatStr;
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .form {
+    padding: 0 200px 0 0;
+  }
+
+  p {
+    padding: 0;
+    margin: 0;
+  }
+
+  .top .shu {
+    float: left;
+    width: 4px;
+    height: 20px;
+    background: rgba(233, 2, 29, 1);
+  }
+
+  .top .title {
+    float: left;
+    padding: 0 10px;
+    font-size: 16px;
+    font-family: Source Han Sans SC;
+    font-weight: bold;
+    color: rgba(40, 40, 40, 1);
+  }
+
+  /deep/ .el-textarea__inner {
+    min-height: 100px !important;
+  }
+
+  /deep/ .select {
+    width: 632px;
+  }
+
+  .selects {
+    width: 473px;
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-radio__input.is-checked + .el-radio__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-radio__input.is-checked .el-radio__inner {
+    border-color: #e9021d;
+    background: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked + .el-checkbox__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked .el-checkbox__inner,
+  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: #e9021d;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button,
+  .el-checkbox-button__inner {
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-checkbox-button__inner {
+    padding: 7px 5px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button__inner:hover {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button:first-child .el-checkbox-button__inner {
+    border-left: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button:last-child .el-checkbox-button__inner {
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    color: #e9021d;
+    background-color: #ffffff;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    box-shadow: none;
+  }
+
+  /deep/ .el-switch.is-checked .el-switch__core {
+    border-color: #e9021d;
+    background-color: #e9021d;
+  }
+  /deep/ .el-form-item .el-form-item__label {
+    font-size: 16px;
+  }
+  /deep/ .el-form-item .el-form-item__content {
+    font-size: 16px;
+  }
+
+  .clickBtn .el-button {
+    width: 100px;
+    height: 40px;
+    padding: 0;
+    color: #ffffff;
+    background: #b9b9b9;
+    border-radius: 4px;
+    margin: 40px;
+  }
+
+  .clickBtn {
+    text-align: center;
+    margin: 40px 0;
+    border-top: 1px solid #ccc;
+  }
+
+  .clickBtn .el-button:first-child {
+    background-color: #e9021d;
+  }
+</style>

+ 349 - 0
src/layout/financingTNewAssign/tNewAssignList.vue

@@ -0,0 +1,349 @@
+<template>
+    <div id="tNewAssignList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.is_exist" placeholder="请选择指派状态">
+                            <el-option label="已指派" value="1"></el-option>
+                            <el-option label="未指派" value="2"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="person" label="联系人" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="指派状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.is_exist === '1' ? '已指派' : '未指派'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                <!--<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>-->
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/financingTNewAssign/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                <!--<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>-->
+                                <!--<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>-->
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'tNewAssignList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 367 - 0
src/layout/financingTUrgeHandle/seeList.vue

@@ -0,0 +1,367 @@
+<template>
+    <div id="seeList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.status" placeholder="请选择处理状态">
+                            <el-option label="已处理" value="2"></el-option>
+                            <el-option label="未处理" value="1"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="person" label="联系人" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="催办机构" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.company_type === '1' ?  '政府部门' : scope.row.company_type === '2' ? '金控集团' : ''}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="催办时间" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ getDate(scope.row.time)}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="处理状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.status === '1' ? '未处理' : '已处理'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="处理时间" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ getDate(scope.row.handle_time)}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <!--<el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                &lt;!&ndash;<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>&ndash;&gt;
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/tUrgeHandle/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                &lt;!&ndash;<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>&ndash;&gt;
+                                &lt;!&ndash;<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>&ndash;&gt;
+                            </template>
+                        </el-table-column>-->
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'seeList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                this.$set(this, `search`, {});
+                /*let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }*/
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 309 - 0
src/layout/financingTUrgeHandle/tUrgeHandleForm.vue

@@ -0,0 +1,309 @@
+<template>
+  <div id="tUrgeHandleForm">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <span class="shu"></span><span class="title">{{ formTitle }}</span>
+        </el-col>
+        <el-col :span="24" class="form">
+          <el-form :model="ruleForm" ref="ruleForm" label-width="160px" class="demo-ruleForm">
+            <el-col :span="12">
+              <el-form-item label="企业名称:">
+                <span>{{ ruleForm.company_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资金额(万元):">
+                <span>{{ ruleForm.money }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="联系人:">
+                <span>{{ ruleForm.person }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="手机号:">
+                <span>{{ ruleForm.phone }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="金融机构名称:">
+                <span>{{ ruleForm.institution_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="产品名称:">
+                <span>{{ ruleForm.product_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="担保方式:">
+                <span>{{ ruleForm.ensure_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="补充信息:">
+                <span>{{ ruleForm.remarks }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望利率范围:">
+                <span>{{ `${ruleForm.mongey_min_rate}%~${ruleForm.mongey_max_rate}%` }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望融资期限(个月):">
+                <span>{{ `${ruleForm.claims_min_term}个月~${ruleForm.claims_max_term}个月` }}</span>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" class="clickBtn">
+              <el-button @click="submitForm">催办</el-button>
+              <el-button @click="resetForm">取消</el-button>
+            </el-col>
+
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import uploadImage from '@/layout/custom/uploadImage.vue';
+  /*import uploadFile from '@/layout/custom/uploadFile.vue';*/
+  import WangEditor from '@/components/wang-editor.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  import _ from 'lodash';
+
+  export default {
+    name: 'tUrgeHandleForm',
+    props: {
+      ruleForm: null,
+    },
+    components: {
+      uploadImage,
+      /*uploadFile,*/
+      WangEditor,
+    },
+    data: () => ({
+      formTitle: '催办操作',
+      /*rules: {
+        title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+        type: [{ required: true }],
+        link: [{ required: false }],
+        issuing_organ: [{ required: true, message: '请输入发文机关', trigger: 'blur' }],
+        subject_classification: [{ required: true }],
+        subject_headings: [{ required: true }],
+        description: [{ required: true, message: '请输入内容', trigger: 'blur' }],
+      },*/
+    }),
+    created() {
+    },
+    mounted(){
+    },
+    computed: {},
+    methods: {
+      ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'originalQuery']),
+      async submitForm() {
+        let temp = JSON.parse(JSON.stringify(this.ruleForm));
+
+        if(temp.is_exist === '1'){
+          this.$message.error('已催办!');
+          return ;
+        }
+
+        const res = await this.originalQuery({ skip:0, limit:1, demand_id: this.ruleForm.demand_id, type: '2'});
+        if(res.total === 1){
+          this.$message.error('已催办!');
+          return ;
+        }
+
+        console.log(temp);
+
+        delete temp._id;
+        delete temp.is_exist;
+        delete temp.meta;
+        delete temp.information;
+        this.$emit('submitForm', { data: temp });
+      },
+      resetForm() {
+        this.$emit('resetForm');
+      },
+      uploadSuccess({ data }) {
+        this.$set(this.ruleForm, 'image', data.uri);
+      },
+      remove(file) {
+        this.$set(this.ruleForm, 'image', '')
+      },
+      uploadFileSuccess({ data,file }) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          this.$set(this.ruleForm.enclosure, this.ruleForm.enclosure.length,{name:file.name,url:data.uri});
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[{name:file.name,url:data.uri}]);
+        }
+      },
+      removeFile(file) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          let temp = this.ruleForm.enclosure.filter((val) => {
+            return val.url !== file.url;
+          });
+          this.$set(this.ruleForm, 'enclosure',temp);
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[]);
+        }
+      },
+      changeType(value){
+        if(value && value === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }else{
+          this.$set(this.rules, 'link',[{ required: false }]);
+        }
+      },
+      async checkType(value){
+        let res = await this.fetch(value);
+        if(res.data.type === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }
+      },
+      getDate(val) {
+        if(val){
+          return this.format(new Date(Number(val)),'yyyy年MM月dd');
+        }
+        return '';
+      },
+      format(date,formatStr){
+        formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+        formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+        formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+        return formatStr;
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .form {
+    padding: 0 200px 0 0;
+  }
+
+  p {
+    padding: 0;
+    margin: 0;
+  }
+
+  .top .shu {
+    float: left;
+    width: 4px;
+    height: 20px;
+    background: rgba(233, 2, 29, 1);
+  }
+
+  .top .title {
+    float: left;
+    padding: 0 10px;
+    font-size: 16px;
+    font-family: Source Han Sans SC;
+    font-weight: bold;
+    color: rgba(40, 40, 40, 1);
+  }
+
+  /deep/ .el-textarea__inner {
+    min-height: 100px !important;
+  }
+
+  /deep/ .select {
+    width: 632px;
+  }
+
+  .selects {
+    width: 473px;
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-radio__input.is-checked + .el-radio__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-radio__input.is-checked .el-radio__inner {
+    border-color: #e9021d;
+    background: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked + .el-checkbox__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked .el-checkbox__inner,
+  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: #e9021d;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button,
+  .el-checkbox-button__inner {
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-checkbox-button__inner {
+    padding: 7px 5px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button__inner:hover {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button:first-child .el-checkbox-button__inner {
+    border-left: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button:last-child .el-checkbox-button__inner {
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    color: #e9021d;
+    background-color: #ffffff;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    box-shadow: none;
+  }
+
+  /deep/ .el-switch.is-checked .el-switch__core {
+    border-color: #e9021d;
+    background-color: #e9021d;
+  }
+  /deep/ .el-form-item .el-form-item__label {
+    font-size: 16px;
+  }
+  /deep/ .el-form-item .el-form-item__content {
+    font-size: 16px;
+  }
+
+  .clickBtn .el-button {
+    width: 100px;
+    height: 40px;
+    padding: 0;
+    color: #ffffff;
+    background: #b9b9b9;
+    border-radius: 4px;
+    margin: 40px;
+  }
+
+  .clickBtn {
+    text-align: center;
+    margin: 40px 0;
+    border-top: 1px solid #ccc;
+  }
+
+  .clickBtn .el-button:first-child {
+    background-color: #e9021d;
+  }
+</style>

+ 355 - 0
src/layout/financingTUrgeHandle/tUrgeHandleList.vue

@@ -0,0 +1,355 @@
+<template>
+    <div id="tUrgeHandleList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.is_exist" placeholder="请选择催办状态">
+                            <el-option label="已催办" value="1"></el-option>
+                            <el-option label="未催办" value="2"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="person" label="联系人" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="催办状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.is_exist === '1' ? '已催办' : '未催办'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="催办机构" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.information.company_type === '1' ?  '政府部门' : scope.row.information.company_type === '2' ? '金控集团' : ''}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                <!--<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>-->
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/financingTUrgeHandle/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                <!--<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>-->
+                                <!--<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>-->
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'tUrgeHandleList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 7 - 0
src/layout/institution/detailInfo.vue

@@ -109,6 +109,7 @@
               <el-form-item>
                 <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
                 <el-button @click="resetForm('ruleForm')">取消</el-button>
+                <el-button type="warning" @click="shenheForm()">审核</el-button>
               </el-form-item>
             </el-col>
           </el-form>
@@ -177,6 +178,9 @@ export default {
     resetForm() {
       this.$emit('resetForm');
     },
+    shenheForm() {
+      this.$emit('shenheForm', { data: this.ruleForm });
+    },
 
     uploadSuccess({ type, data }) {
       if (type !== 'logo') {
@@ -308,4 +312,7 @@ p {
 .clickBtn .el-button:first-child {
   background-color: #e9021d;
 }
+.clickBtn .el-button:last-child {
+  background: #e6a23c;
+}
 </style>

+ 94 - 0
src/layout/intelligentDocking/detail.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="top">
+          <span class="shu"></span><span class="title">{{ formTitle }}</span>
+        </el-col>
+        <el-col :span="24">
+          <el-form ref="form" :model="form" label-width="180px">
+            <el-form-item label="企业名称:">
+              <span>{{ form.company.company_name }}</span>
+              <!-- <el-input v-model="form.company.company_name" disabled></el-input> -->
+            </el-form-item>
+            <el-form-item label="联系人:">
+              <span>{{ form.person }}</span>
+            </el-form-item>
+            <el-form-item label="融资金额(万元):">
+              <span>{{ form.money }}</span>
+            </el-form-item>
+            <el-form-item label="授信金融(万元):">
+              <span>{{ form.follow.credit_money }}</span>
+            </el-form-item>
+            <el-form-item label="融资期限(个月):">
+              <span>{{ form.claims_min_term }}个月~{{ form.claims_max_term }}个月</span>
+            </el-form-item>
+            <el-form-item label="融资利率:">
+              <span>{{ form.mongey_min_rate }}%~{{ form.mongey_max_rate }}%</span>
+            </el-form-item>
+            <el-form-item label="担保方式:">
+              <span>{{ form.dictionary.name }}</span>
+            </el-form-item>
+            <el-form-item label="预计何时有融资需求:">
+              <span>{{ form.when.name }}</span>
+            </el-form-item>
+            <el-form-item label="补充信息:">
+              <span>{{ form.additional_information }}</span>
+            </el-form-item>
+            <el-form-item label="对接产品:">
+              <span>{{ form.finance_claims.name }}</span>
+            </el-form-item>
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'detail',
+  props: {
+    formTitle: null,
+    form: null,
+  },
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.info {
+  padding: 20px;
+}
+p {
+  padding: 0;
+  margin: 0;
+}
+.top .shu {
+  float: left;
+  width: 4px;
+  height: 20px;
+  background: rgba(233, 2, 29, 1);
+}
+.top .title {
+  float: left;
+  padding: 0 10px;
+  font-size: 16px;
+  font-family: Source Han Sans SC;
+  font-weight: bold;
+  color: rgba(40, 40, 40, 1);
+}
+/deep/.el-form-item__label {
+  color: #000;
+  font-size: 15px;
+}
+/deep/.el-form-item__content {
+  color: #000;
+  font-weight: bold;
+  font-size: 15px;
+}
+</style>

+ 116 - 0
src/layout/intelligentDocking/list.vue

@@ -0,0 +1,116 @@
+<template>
+  <div id="list">
+    <el-row>
+      <el-col :span="24" class="list">
+        <el-table ref="debtTable" :data="debtTable" style="width: 100%">
+          <el-table-column type="index" label="序号" width="50" align="center"> </el-table-column>
+          <el-table-column property="intelligent.company_name" label="企业名称" align="center"> </el-table-column>
+          <el-table-column property="intelligent.money" label="融资金额(万元)" align="center"> </el-table-column>
+          <el-table-column label="利率范围" align="center">
+            <template slot-scope="scope">
+              <span style="margin-left: 10px">{{ scope.row.intelligent.mongey_min_rate }}%~{{ scope.row.intelligent.mongey_max_rate }}%</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="当前状态" align="center">
+            <template slot-scope="scope">
+              <span style="margin-left: 10px">{{
+                scope.row.creditStatus == '0'
+                  ? '接单'
+                  : scope.row.creditStatus == '1'
+                  ? '已完成'
+                  : scope.row.creditStatus == '2'
+                  ? '已审批'
+                  : scope.row.creditStatus == '3'
+                  ? '已拒绝'
+                  : ' '
+              }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" align="center" width="300px">
+            <template slot-scope="scope">
+              <el-button @click="$router.push({ path: '/intelligentDocking/detail', query: { intelligentId: scope.row.intelligentId } })" type="text">
+                <i class="el-icon-view"></i>
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-row>
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            background
+            layout="total,  prev, pager, next, jumper"
+            :total="total"
+            :page-size="pageSize"
+          >
+          </el-pagination>
+        </el-row>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'list',
+  props: {
+    debtTable: null,
+    total: null,
+  },
+  components: {},
+  data: () => ({
+    currentPage: 0,
+    pageSize: 10,
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(currentPage) {
+      this.$emit('handleCurrentChange', { skip: (currentPage - 1) * this.pageSize, limit: this.pageSize, currentPage });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.list {
+  padding: 20px;
+}
+/deep/.el-checkbox__input.is-checked .el-checkbox__inner {
+  background-color: red;
+  border-color: red;
+}
+/deep/.el-checkbox__input.is-indeterminate .el-checkbox__inner {
+  background-color: red;
+  border-color: red;
+}
+/deep/.el-table th {
+  background-color: #f5f6fa;
+  padding: 8px 0;
+}
+/deep/.el-table td {
+  padding: 11px 0;
+}
+.other {
+  color: #f36302;
+}
+.view {
+  color: #f36302;
+}
+.edit {
+  color: #2ccc02;
+}
+.delete {
+  color: #e9021d;
+}
+/deep/.el-pagination {
+  padding: 26px 20px;
+}
+/deep/.el-pagination.is-background .el-pager li:not(.disabled).active {
+  background-color: red;
+}
+</style>

+ 26 - 2
src/layout/layout-part/menus.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="menus">
-    <el-menu :default-active="thisRouter()" class="el-menu-vertical-demo" :router="false" :default-openeds="defalutMenu" @select="to">
+    <el-menu :default-active="thisRouter()" class="el-menu-vertical-demo" style="height:867px" :router="false" :default-openeds="defalutMenu" @select="to">
       <el-menu-item index="/"> <i class="el-icon-s-grid"></i>首页 </el-menu-item>
       <el-submenu index="1">
         <template v-slot:title>
@@ -23,7 +23,6 @@
         </el-menu-item-group>
       </el-submenu> -->
       <!-- <el-menu-item index="/finance/index"> <i class="el-icon-s-grid"></i>项目融资超市</el-menu-item> -->
-
       <el-submenu index="2">
         <template v-slot:title>
           <i class="el-icon-s-grid"></i>
@@ -96,6 +95,31 @@
       <el-menu-item index="/character/index"> <i class="el-icon-s-grid"></i>角色管理</el-menu-item>
       <el-menu-item index="/region/index"> <i class="el-icon-s-grid"></i>地区管理</el-menu-item>
       <el-menu-item index="/banner/index"> <i class="el-icon-s-grid"></i>首页轮播管理</el-menu-item>
+
+      <el-menu-item index="/tNewAssign/index"> <i class="el-icon-s-grid"></i>企业申请信息指派</el-menu-item>
+      <el-submenu index="6">
+        <template v-slot:title>
+          <i class="el-icon-s-grid"></i>
+          <span>企业申请信息催办</span>
+        </template>
+        <el-menu-item-group>
+          <el-menu-item index="/tUrgeHandle/index">催办操作</el-menu-item>
+          <el-menu-item index="/tUrgeHandle/seeIndex">催办查看</el-menu-item>
+        </el-menu-item-group>
+      </el-submenu>
+
+      <el-menu-item index="/financingTNewAssign/index"> <i class="el-icon-s-grid"></i>我要融资指派</el-menu-item>
+      <el-submenu index="7">
+        <template v-slot:title>
+          <i class="el-icon-s-grid"></i>
+          <span>我要融资催办</span>
+        </template>
+        <el-menu-item-group>
+          <el-menu-item index="/financingTUrgeHandle/index">催办操作</el-menu-item>
+          <el-menu-item index="/financingTUrgeHandle/seeIndex">催办查看</el-menu-item>
+        </el-menu-item-group>
+      </el-submenu>
+      <el-menu-item index="/intelligentDocking/index"> <i class="el-icon-s-grid"></i>银企对接成功列表</el-menu-item>
     </el-menu>
   </div>
 </template>

+ 340 - 0
src/layout/tNewAssign/tNewAssignForm.vue

@@ -0,0 +1,340 @@
+<template>
+  <div id="tNewAssignForm">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <span class="shu"></span><span class="title">{{ formTitle }}</span>
+        </el-col>
+        <el-col :span="24" class="form">
+          <el-form :model="ruleForm" ref="ruleForm" label-width="160px" class="demo-ruleForm">
+            <el-col :span="12">
+              <el-form-item label="企业名称:">
+                <span>{{ ruleForm.company_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资金额(万元):">
+                <span>{{ ruleForm.money }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资用途:">
+                <span>{{ ruleForm.use }}</span>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="12">
+              <el-form-item label="担保方式:">
+                <span>{{ ruleForm.ensure_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目情况:">
+                <span>{{ ruleForm.project_status }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="备注:">
+                <span>{{ ruleForm.remarks }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望利率范围:">
+                <span>{{ `${ruleForm.mongey_min_rate}%~${ruleForm.mongey_max_rate}%` }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望融资期限(个月):">
+                <span>{{ `${ruleForm.claims_min_term}个月~${ruleForm.claims_max_term}个月` }}</span>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="12">
+              <el-form-item label="金融机构名称:">
+                <el-select v-model="ruleForm.jg_id" placeholder="请选择金融机构" @change="jgproListSelect" ref="jgSelect">
+                  <el-option v-for="item in jgList" :key="item._id" :label="item.name" :value="item._id"> </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="12">
+              <el-form-item label="产品名称:">
+                <el-select v-model="ruleForm.jg_pro_id" placeholder="请选择产品" ref="jgproSelect">
+                  <el-option v-for="item in jgproList" :key="item._id" :label="item.name" :value="item._id"> </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" class="clickBtn">
+              <el-button @click="submitForm">指派</el-button>
+              <el-button @click="resetForm">取消</el-button>
+            </el-col>
+
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import uploadImage from '@/layout/custom/uploadImage.vue';
+  /*import uploadFile from '@/layout/custom/uploadFile.vue';*/
+  import WangEditor from '@/components/wang-editor.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: institution } = createNamespacedHelpers('institution');
+  const { mapActions: financeclaims } = createNamespacedHelpers('financeclaim');
+  import _ from 'lodash';
+
+  export default {
+    name: 'tNewAssignForm',
+    props: {
+      ruleForm: null,
+      originalData: null,
+      jgList: null,
+      jgproList: null,
+    },
+    components: {
+      uploadImage,
+      /*uploadFile,*/
+      WangEditor,
+    },
+    data: () => ({
+      formTitle: '企业申请信息指派',
+      /*rules: {
+        title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+        type: [{ required: true }],
+        link: [{ required: false }],
+        issuing_organ: [{ required: true, message: '请输入发文机关', trigger: 'blur' }],
+        subject_classification: [{ required: true }],
+        subject_headings: [{ required: true }],
+        description: [{ required: true, message: '请输入内容', trigger: 'blur' }],
+      },*/
+    }),
+    created() {
+
+    },
+    mounted(){
+
+    },
+    computed: {
+    },
+    methods: {
+      ...tNewAssign(['create', 'delete', 'update', 'fetch', 'originalQuery']),
+      jgproListSelect(val) {
+        this.$set(this.ruleForm, 'jg_pro_id','');
+        this.$emit('jgproListSelect', { jg_id: val })
+      },
+      async submitForm() {
+        console.log(this.$refs['jgSelect'].selectedLabel);
+        console.log(this.$refs['jgproSelect'].selectedLabel);
+        let temp = JSON.parse(JSON.stringify(this.ruleForm));
+
+        if(temp.is_exist === '1'){
+         this.$message.error('已指派!');
+         return ;
+       }
+
+        const res = await this.originalQuery({ skip:0, limit:1, demand_id: this.ruleForm.demand_id, type: '1'});
+        if(res.total === 1){
+          this.$message.error('已指派!');
+          return ;
+        }
+
+        if(temp.jg_id === this.originalData.jg_id && temp.jg_pro_id === this.originalData.jg_pro_id){
+          this.$message.error('数据没有变化!');
+          return ;
+        }
+
+        if(!temp.jg_pro_id){
+          this.$message.error('请选择产品!');
+          return ;
+        }
+
+        temp.institution_name = this.$refs['jgSelect'].selectedLabel;
+        temp.product_name = this.$refs['jgproSelect'].selectedLabel
+        delete temp._id;
+        delete temp.is_exist;
+        delete temp.meta;
+        delete temp.information;
+        this.$emit('submitForm', { data: temp })
+      },
+      resetForm() {
+        this.$emit('resetForm');
+      },
+      uploadSuccess({ data }) {
+        this.$set(this.ruleForm, 'image', data.uri);
+      },
+      remove(file) {
+        this.$set(this.ruleForm, 'image', '')
+      },
+      uploadFileSuccess({ data,file }) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          this.$set(this.ruleForm.enclosure, this.ruleForm.enclosure.length,{name:file.name,url:data.uri});
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[{name:file.name,url:data.uri}]);
+        }
+      },
+      removeFile(file) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          let temp = this.ruleForm.enclosure.filter((val) => {
+            return val.url !== file.url;
+          });
+          this.$set(this.ruleForm, 'enclosure',temp);
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[]);
+        }
+      },
+      changeType(value){
+        if(value && value === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }else{
+          this.$set(this.rules, 'link',[{ required: false }]);
+        }
+      },
+      async checkType(value){
+        let res = await this.fetch(value);
+        if(res.data.type === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }
+      },
+      getDate(val) {
+        if(val){
+          return this.format(new Date(Number(val)),'yyyy年MM月dd');
+        }
+        return '';
+      },
+      format(date,formatStr){
+        formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+        formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+        formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+        return formatStr;
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .form {
+    padding: 0 200px 0 0;
+  }
+
+  p {
+    padding: 0;
+    margin: 0;
+  }
+
+  .top .shu {
+    float: left;
+    width: 4px;
+    height: 20px;
+    background: rgba(233, 2, 29, 1);
+  }
+
+  .top .title {
+    float: left;
+    padding: 0 10px;
+    font-size: 16px;
+    font-family: Source Han Sans SC;
+    font-weight: bold;
+    color: rgba(40, 40, 40, 1);
+  }
+
+  /deep/ .el-textarea__inner {
+    min-height: 100px !important;
+  }
+
+  /deep/ .select {
+    width: 632px;
+  }
+
+  .selects {
+    width: 473px;
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-radio__input.is-checked + .el-radio__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-radio__input.is-checked .el-radio__inner {
+    border-color: #e9021d;
+    background: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked + .el-checkbox__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked .el-checkbox__inner,
+  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: #e9021d;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button,
+  .el-checkbox-button__inner {
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-checkbox-button__inner {
+    padding: 7px 5px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button__inner:hover {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button:first-child .el-checkbox-button__inner {
+    border-left: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button:last-child .el-checkbox-button__inner {
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    color: #e9021d;
+    background-color: #ffffff;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    box-shadow: none;
+  }
+
+  /deep/ .el-switch.is-checked .el-switch__core {
+    border-color: #e9021d;
+    background-color: #e9021d;
+  }
+  /deep/ .el-form-item .el-form-item__label {
+    font-size: 16px;
+  }
+  /deep/ .el-form-item .el-form-item__content {
+    font-size: 16px;
+  }
+
+  .clickBtn .el-button {
+    width: 100px;
+    height: 40px;
+    padding: 0;
+    color: #ffffff;
+    background: #b9b9b9;
+    border-radius: 4px;
+    margin: 40px;
+  }
+
+  .clickBtn {
+    text-align: center;
+    margin: 40px 0;
+    border-top: 1px solid #ccc;
+  }
+
+  .clickBtn .el-button:first-child {
+    background-color: #e9021d;
+  }
+</style>

+ 349 - 0
src/layout/tNewAssign/tNewAssignList.vue

@@ -0,0 +1,349 @@
+<template>
+    <div id="tNewAssignList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.is_exist" placeholder="请选择指派状态">
+                            <el-option label="已指派" value="1"></el-option>
+                            <el-option label="未指派" value="2"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="use" label="融资用途" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="指派状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.is_exist === '1' ? '已指派' : '未指派'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                <!--<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>-->
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/tNewAssign/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                <!--<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>-->
+                                <!--<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>-->
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'tNewAssignList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 367 - 0
src/layout/tUrgeHandle/seeList.vue

@@ -0,0 +1,367 @@
+<template>
+    <div id="seeList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.status" placeholder="请选择处理状态">
+                            <el-option label="已处理" value="2"></el-option>
+                            <el-option label="未处理" value="1"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="use" label="融资用途" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="催办机构" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.company_type === '1' ?  '政府部门' : scope.row.company_type === '2' ? '金控集团' : ''}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="催办时间" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ getDate(scope.row.time)}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="处理状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.status === '1' ? '未处理' : '已处理'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="处理时间" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ getDate(scope.row.handle_time)}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <!--<el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                &lt;!&ndash;<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>&ndash;&gt;
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/tUrgeHandle/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                &lt;!&ndash;<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>&ndash;&gt;
+                                &lt;!&ndash;<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>&ndash;&gt;
+                            </template>
+                        </el-table-column>-->
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'seeList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                this.$set(this, `search`, {});
+                /*let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }*/
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 309 - 0
src/layout/tUrgeHandle/tUrgeHandleForm.vue

@@ -0,0 +1,309 @@
+<template>
+  <div id="tUrgeHandleForm">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <span class="shu"></span><span class="title">{{ formTitle }}</span>
+        </el-col>
+        <el-col :span="24" class="form">
+          <el-form :model="ruleForm" ref="ruleForm" label-width="160px" class="demo-ruleForm">
+            <el-col :span="12">
+              <el-form-item label="企业名称:">
+                <span>{{ ruleForm.company_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资金额(万元):">
+                <span>{{ ruleForm.money }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="融资用途:">
+                <span>{{ ruleForm.use }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="金融机构名称:">
+                <span>{{ ruleForm.institution_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="产品名称:">
+                <span>{{ ruleForm.product_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="担保方式:">
+                <span>{{ ruleForm.ensure_name }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目情况:">
+                <span>{{ ruleForm.project_status }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="备注:">
+                <span>{{ ruleForm.remarks }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望利率范围:">
+                <span>{{ `${ruleForm.mongey_min_rate}%~${ruleForm.mongey_max_rate}%` }}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="期望融资期限(个月):">
+                <span>{{ `${ruleForm.claims_min_term}个月~${ruleForm.claims_max_term}个月` }}</span>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24" class="clickBtn">
+              <el-button @click="submitForm">催办</el-button>
+              <el-button @click="resetForm">取消</el-button>
+            </el-col>
+
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import uploadImage from '@/layout/custom/uploadImage.vue';
+  /*import uploadFile from '@/layout/custom/uploadFile.vue';*/
+  import WangEditor from '@/components/wang-editor.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  import _ from 'lodash';
+
+  export default {
+    name: 'tUrgeHandleForm',
+    props: {
+      ruleForm: null,
+    },
+    components: {
+      uploadImage,
+      /*uploadFile,*/
+      WangEditor,
+    },
+    data: () => ({
+      formTitle: '催办操作',
+      /*rules: {
+        title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+        type: [{ required: true }],
+        link: [{ required: false }],
+        issuing_organ: [{ required: true, message: '请输入发文机关', trigger: 'blur' }],
+        subject_classification: [{ required: true }],
+        subject_headings: [{ required: true }],
+        description: [{ required: true, message: '请输入内容', trigger: 'blur' }],
+      },*/
+    }),
+    created() {
+    },
+    mounted(){
+    },
+    computed: {},
+    methods: {
+      ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'originalQuery']),
+      async submitForm() {
+        let temp = JSON.parse(JSON.stringify(this.ruleForm));
+
+        if(temp.is_exist === '1'){
+          this.$message.error('已催办!');
+          return ;
+        }
+
+        const res = await this.originalQuery({ skip:0, limit:1, demand_id: this.ruleForm.demand_id, type: '1'});
+        if(res.total === 1){
+          this.$message.error('已催办!');
+          return ;
+        }
+
+        console.log(temp);
+
+        delete temp._id;
+        delete temp.is_exist;
+        delete temp.meta;
+        delete temp.information;
+        this.$emit('submitForm', { data: temp });
+      },
+      resetForm() {
+        this.$emit('resetForm');
+      },
+      uploadSuccess({ data }) {
+        this.$set(this.ruleForm, 'image', data.uri);
+      },
+      remove(file) {
+        this.$set(this.ruleForm, 'image', '')
+      },
+      uploadFileSuccess({ data,file }) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          this.$set(this.ruleForm.enclosure, this.ruleForm.enclosure.length,{name:file.name,url:data.uri});
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[{name:file.name,url:data.uri}]);
+        }
+      },
+      removeFile(file) {
+        if(_.isArray(this.ruleForm.enclosure)){
+          let temp = this.ruleForm.enclosure.filter((val) => {
+            return val.url !== file.url;
+          });
+          this.$set(this.ruleForm, 'enclosure',temp);
+        }else {
+          this.$set(this.ruleForm, 'enclosure',[]);
+        }
+      },
+      changeType(value){
+        if(value && value === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }else{
+          this.$set(this.rules, 'link',[{ required: false }]);
+        }
+      },
+      async checkType(value){
+        let res = await this.fetch(value);
+        if(res.data.type === '2'){
+          this.$set(this.rules, 'link',[{ required: true }]);
+        }
+      },
+      getDate(val) {
+        if(val){
+          return this.format(new Date(Number(val)),'yyyy年MM月dd');
+        }
+        return '';
+      },
+      format(date,formatStr){
+        formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+        formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+        formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+        return formatStr;
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .form {
+    padding: 0 200px 0 0;
+  }
+
+  p {
+    padding: 0;
+    margin: 0;
+  }
+
+  .top .shu {
+    float: left;
+    width: 4px;
+    height: 20px;
+    background: rgba(233, 2, 29, 1);
+  }
+
+  .top .title {
+    float: left;
+    padding: 0 10px;
+    font-size: 16px;
+    font-family: Source Han Sans SC;
+    font-weight: bold;
+    color: rgba(40, 40, 40, 1);
+  }
+
+  /deep/ .el-textarea__inner {
+    min-height: 100px !important;
+  }
+
+  /deep/ .select {
+    width: 632px;
+  }
+
+  .selects {
+    width: 473px;
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-radio__input.is-checked + .el-radio__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-radio__input.is-checked .el-radio__inner {
+    border-color: #e9021d;
+    background: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked + .el-checkbox__label {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox__input.is-checked .el-checkbox__inner,
+  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+    background-color: #e9021d;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button,
+  .el-checkbox-button__inner {
+    margin: 0 15px 0 0;
+  }
+
+  /deep/ .el-checkbox-button__inner {
+    padding: 7px 5px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button__inner:hover {
+    color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button:first-child .el-checkbox-button__inner {
+    border-left: 1px solid #ccc;
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button:last-child .el-checkbox-button__inner {
+    border-radius: 5px;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    color: #e9021d;
+    background-color: #ffffff;
+    border-color: #e9021d;
+  }
+
+  /deep/ .el-checkbox-button.is-checked .el-checkbox-button__inner {
+    box-shadow: none;
+  }
+
+  /deep/ .el-switch.is-checked .el-switch__core {
+    border-color: #e9021d;
+    background-color: #e9021d;
+  }
+  /deep/ .el-form-item .el-form-item__label {
+    font-size: 16px;
+  }
+  /deep/ .el-form-item .el-form-item__content {
+    font-size: 16px;
+  }
+
+  .clickBtn .el-button {
+    width: 100px;
+    height: 40px;
+    padding: 0;
+    color: #ffffff;
+    background: #b9b9b9;
+    border-radius: 4px;
+    margin: 40px;
+  }
+
+  .clickBtn {
+    text-align: center;
+    margin: 40px 0;
+    border-top: 1px solid #ccc;
+  }
+
+  .clickBtn .el-button:first-child {
+    background-color: #e9021d;
+  }
+</style>

+ 355 - 0
src/layout/tUrgeHandle/tUrgeHandleList.vue

@@ -0,0 +1,355 @@
+<template>
+    <div id="tUrgeHandleList">
+        <el-row>
+            <el-col :span="24">
+                <el-col :span="24" class="search">
+                    <el-col :span="5">
+                        <span>筛选条件:</span>
+                        <el-select v-model="search.is_exist" placeholder="请选择催办状态">
+                            <el-option label="已催办" value="1"></el-option>
+                            <el-option label="未催办" value="2"></el-option>
+                        </el-select>
+                    </el-col>
+                    <el-col :span="4">
+                        <span>输入条件:</span>
+                        <el-input v-model="search.company_name" :placeholder="placeholder" class="input"></el-input>
+                    </el-col>
+                    <!--<el-col :span="7">
+                      <span>时间选择:</span>
+                      <el-date-picker v-model="search.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
+                    </el-col>-->
+                    <el-col :span="8">
+                        <el-button class="btnSearch" @click="toQuery">查询</el-button>
+                        <el-button class="btnSearch qing" @click="toClear">清空</el-button>
+                    </el-col>
+                </el-col>
+                <el-col :span="24">
+                    <el-table
+                            ref="tableData"
+                            :data="tableData"
+                            tooltip-effect="dark"
+                            :default-sort="{ prop: 'date', order: 'descending' }"
+                            style="width: 100%"
+                            @selection-change="handleSelectionChange"
+                    >
+                        <!--<el-table-column type="selection" align="center"> </el-table-column>-->
+                        <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
+                        <el-table-column property="company_name" label="企业名称" align="center"> </el-table-column>
+                        <el-table-column property="money" label="融资金额(万元)" align="center"> </el-table-column>
+                        <el-table-column property="use" label="融资用途" align="center"> </el-table-column>
+                        <el-table-column property="institution_name" label="金融机构名称" align="center"> </el-table-column>
+                        <el-table-column property="product_name" label="产品名称" align="center"> </el-table-column>
+
+                        <el-table-column label="催办状态" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.is_exist === '1' ? '已催办' : '未催办'}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="催办机构" align="center">
+                            <template slot-scope="scope">
+                                <span>{{ scope.row.information.company_type === '1' ?  '政府部门' : scope.row.information.company_type === '2' ? '金控集团' : ''}}</span>
+                            </template>
+                        </el-table-column>
+
+                        <el-table-column label="操作" align="center" width="300px">
+                            <template slot-scope="scope">
+                                <!--<el-button size="mini" type="text" class="other" @click="updateState(scope.row,'9')" v-if="scope.row.current_state === '1'">完成</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'-2')" v-if="scope.row.current_state === '0'">审核</el-button>
+                                <el-button size="mini" type="text" class="other" @click="updateState(scope.row,'3')">停用</el-button>-->
+                                <el-button size="mini" type="text" class="view" icon="el-icon-view"
+                                           @click="$router.push({ path: '/tUrgeHandle/detail', query: { demand_id: scope.row.demand_id} })"></el-button>
+                                <!--<el-button size="mini" type="text" class="edit" icon="el-icon-edit"
+                                           @click="$router.push({ path: '/tPolicyDeclaration/detail', query: { id: scope.row.id } })"></el-button>-->
+                                <!--<el-button size="mini" type="text" class="delete" icon="el-icon-delete"
+                                           @click.prevent="deleteRow(scope.row.id)"></el-button>-->
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-row>
+                        <el-pagination
+                                @size-change="handleSizeChange"
+                                @current-change="handleCurrentChange"
+                                :current-page.sync="currentPage"
+                                :page-sizes="[10, 20, 30, 40]"
+                                :page-size.sync="limit"
+                                background
+                                layout="total, sizes, prev, pager, next, jumper"
+                                :total="total"
+                        >
+                        </el-pagination>
+                    </el-row>
+                </el-col>
+            </el-col>
+        </el-row>
+        <el-dialog
+                :visible.sync="dialogVisible"
+                width="30%"
+        >
+            <el-image :src="elImage" style="height:100%;width:100% "></el-image>
+        </el-dialog>
+        <el-dialog title="审核意见" :visible.sync="dialogFormVisible" width="30%" @open="openDialog">
+            <el-input v-model="input" autocomplete="off" placeholder="请输入审核意见"></el-input>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="confirmClick">{{confirm}}</el-button>
+                <el-button @click="cancelClick">{{cancel}}</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: 'tUrgeHandleList',
+        props: {
+            tableData: null,
+            total: null,
+        },
+        components: {},
+        data: () => ({
+            placeholder: '请输入企业名称',
+            search: {},
+            currentPage: 1,
+            limit: 10,
+            dialogVisible: false,
+            elImage: '',
+            tempId:'',
+            tempState:'',
+            dialogFormVisible: false,
+            input:'',
+            confirm:'确定',
+            cancel:'取消',
+        }),
+        created() {
+        },
+        computed: {
+        },
+        methods: {
+            handleSelectionChange(val) {
+                this.multipleSelection = val;
+            },
+            deleteRow(id) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('deleteRow', {id: id, skip: 0, limit: this.limit, ...this.search});
+            },
+            handleSizeChange(val) {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: val, ...this.search});
+            },
+            handleCurrentChange(val) {
+                this.$emit('select', {skip: (val - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            toQuery() {
+                this.$set(this, `currentPage`, 1);
+                this.$emit('select', {skip: 0, limit: this.limit, ...this.search});
+            },
+            toClear() {
+                let keys = Object.keys(this.search);
+                for (const key of keys) {
+                    this.$set(this.search, `${key}`, '');
+                }
+            },
+            showImage(image) {
+                if(image){
+                    this.$set(this, `elImage`, image);
+                    this.$set(this, `dialogVisible`, true);
+                }else{
+                    this.$set(this, `dialogVisible`, false);
+                }
+            },
+            getDate(val) {
+                if(val){
+                    return this.format(new Date(Number(val)),'yyyy年MM月dd');
+                }
+                return '';
+            },
+            format(date,formatStr){
+                formatStr=formatStr.replace(/yyyy|YYYY/,date.getFullYear());
+                formatStr=formatStr.replace(/MM/,(date.getMonth()+1)>9?(date.getMonth()+1).toString():'0' + (date.getMonth()+1));
+                formatStr=formatStr.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate());
+                return formatStr;
+            },
+            publish(row){
+                if(row.publish_state === '1'){
+                    this.$message.error('已发布');
+                    return ;
+                }
+                this.$emit('publish', {row:row,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+            },
+            openDialog(){
+                this.$set(this, `input`, '');
+            },
+            confirmClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'1',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        this.$emit('updateState', {id:this.tempId,state:this.tempState,result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                }
+            },
+            cancelClick(){
+                this.$set(this, `dialogFormVisible`, false);
+                switch(this.tempState)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        break;
+                    case '-2':
+                        this.$emit('updateState', {id:this.tempId,state:'2',result:this.input,skip: (this.currentPage - 1) * this.limit, limit: this.limit, ...this.search});
+                        break;
+                    case '9':
+                        break;
+                }
+            },
+            updateState(row,state){
+                this.$set(this, `tempId`, row.id);
+                this.$set(this, `tempState`, state);
+                switch(state)
+                {
+                    case '0':
+                        break;
+                    case '1':
+                        break;
+                    case '2':
+                        break;
+                    case '3':
+                        if(row.current_state === state){
+                            this.$message.error('已停用');
+                        }else{
+                            this.$set(this, `confirm`, '停用');
+                            this.$set(this, `cancel`, '取消');
+                            this.$set(this, `dialogFormVisible`, true);
+                        }
+                        break;
+                    case '-2':
+                        this.$set(this, `confirm`, '审核通过');
+                        this.$set(this, `cancel`, '审核拒绝');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                    case '9':
+                        this.$set(this, `confirm`, '完成');
+                        this.$set(this, `cancel`, '取消');
+                        this.$set(this, `dialogFormVisible`, true);
+                        break;
+                }
+            },
+            getState(val) {
+                switch(val)
+                {
+                    case '0':
+                        return '未审核';
+                    case '1':
+                        return '审核通过';
+                    case '2':
+                        return '审核拒绝';
+                    case '9':
+                        return '完成';
+                    case '3':
+                        return '停用';
+                }
+            },
+        },
+    };
+</script>
+
+<style lang="less" scoped>
+    /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+        background-color: red;
+        border-color: red;
+    }
+
+    /deep/ .el-table th {
+        background-color: #f5f6fa;
+        padding: 8px 0;
+    }
+
+    /deep/ .el-table td {
+        padding: 11px 0;
+    }
+
+    .other {
+        color: #f36302;
+    }
+
+    .view {
+        color: #f36302;
+    }
+
+    .edit {
+        color: #2ccc02;
+    }
+
+    .delete {
+        color: #e9021d;
+    }
+
+    /deep/ .el-pagination {
+        padding: 26px 20px;
+    }
+
+    /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
+        background-color: red;
+    }
+
+    .input {
+        width: 150px;
+    }
+
+    /deep/ .el-input__inner {
+        height: 35px;
+        line-height: 35px;
+    }
+
+    .btnSearch {
+        width: 80px;
+        height: 34px;
+        background: rgba(233, 2, 29, 1);
+        border-radius: 4px;
+        padding: 0;
+        color: #fff;
+    }
+
+    .qing {
+        background: rgba(185, 185, 185, 1);
+    }
+
+    .top {
+        height: 50px;
+        margin: 0 0 10px 0;
+    }
+
+    .search {
+        background: #ffffff;
+        width: 97%;
+        height: 35px;
+        margin: 20px;
+        margin-left: 0px;
+    }
+
+    .list {
+        padding: 0 20px;
+    }
+</style>

+ 54 - 0
src/router/index.js

@@ -305,6 +305,60 @@ const routes = [
     path: '/banner/detail',
     component: () => import('../views/banner/detail.vue'),
   },
+  // 企业申请信息催办
+  {
+    path: '/tUrgeHandle/index',
+    component: () => import('../views/tUrgeHandle/index.vue'),
+  },
+  {
+    path: '/tUrgeHandle/detail',
+    component: () => import('../views/tUrgeHandle/detail.vue'),
+  },
+  {
+    path: '/tUrgeHandle/seeIndex',
+    component: () => import('../views/tUrgeHandle/seeIndex.vue'),
+  },
+  // 企业申请信息指派
+  {
+    path: '/tNewAssign/index',
+    component: () => import('../views/tNewAssign/index.vue'),
+  },
+  {
+    path: '/tNewAssign/detail',
+    component: () => import('../views/tNewAssign/detail.vue'),
+  },
+  // 我要融资催办
+  {
+    path: '/financingTUrgeHandle/index',
+    component: () => import('../views/financingTUrgeHandle/index.vue'),
+  },
+  {
+    path: '/financingTUrgeHandle/detail',
+    component: () => import('../views/financingTUrgeHandle/detail.vue'),
+  },
+  {
+    path: '/financingTUrgeHandle/seeIndex',
+    component: () => import('../views/financingTUrgeHandle/seeIndex.vue'),
+  },
+  // 我要融资指派
+  {
+    path: '/financingTNewAssign/index',
+    component: () => import('../views/financingTNewAssign/index.vue'),
+  },
+  {
+    path: '/financingTNewAssign/detail',
+    component: () => import('../views/financingTNewAssign/detail.vue'),
+  },
+  // 银企对接已成功列表
+  {
+    path: '/intelligentDocking/index',
+    component: () => import('../views/intelligentDocking/index.vue'),
+  },
+  // 详情
+  {
+    path: '/intelligentDocking/detail',
+    component: () => import('../views/intelligentDocking/detail.vue'),
+  },
 ];
 const router = new VueRouter({
   mode: 'history',

+ 43 - 0
src/store/claimneed.js

@@ -0,0 +1,43 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  claimInfo: `/api/financial/claimneed`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.claimInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.claimInfo}/update/${id}`, data);
+    return res;
+  },
+  async followclaim({ commit }, payload) {// 金融机构关注债权需求
+    const res = await this.$axios.$post(`${api.claimInfo}/followclaim`, payload);
+    return res;
+  },
+  async fclaim({ commit }, payload) {// 根据金融机构查询债权需求(列表)--分为指向(传金融机构ID)和非指向(不用传)
+    const res = await this.$axios.$post(`${api.claimInfo}/fclaim`,payload);
+    return res;
+  },
+  async one({ commit }, payload) {// 详情
+    const res = await this.$axios.$post(`${api.claimInfo}/one`,payload);
+    return res;
+  },
+  async beforFollow({ commit }, payload) {// 关注前请求的接口
+    const res = await this.$axios.$post(`${api.claimInfo}/beforFollow`,payload);
+    return res;
+  }
+
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 5 - 0
src/store/financeclaim.js

@@ -4,6 +4,7 @@ import _ from 'lodash';
 Vue.use(Vuex);
 const api = {
   financeclaimInfo: `/api/financial/financeclaims`,
+  justNameId: `/api/financial/financeclaims/justNameId`,
 };
 const state = () => ({});
 const mutations = {};
@@ -41,6 +42,10 @@ const actions = {
     const res = await this.$axios.$post(`${api.financeclaimInfo}/update/${id}`, data);
     return res;
   },
+  async searchpro({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.justNameId}`, payload);
+    return res;
+  },
 
 };
 export default {

+ 43 - 0
src/store/follow.js

@@ -0,0 +1,43 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  followInfo: `/api/financial/financefollow`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.followInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async credit({ commit }, payload) {// 授信接口
+    const res = await this.$axios.$post(`${api.followInfo}/credit`, payload);
+    return res;
+  },
+  async followlist({ commit }, payload) {// 授信关注债权列表
+    const res = await this.$axios.$post(`${api.followInfo}/followlist`,payload);
+    return res;
+  },
+  async delete({ commit }, payload) {//取消关注
+    const res = await this.$axios.$delete(`${api.followInfo}/${payload}`);
+    return res;
+  },
+  async followstock({ commit }, payload) {// 授信关注股权列表
+    const res = await this.$axios.$post(`${api.followInfo}/followstock`,payload);
+    return res;
+  },
+  async followClaimHistory({ commit }, payload) {// 完成债权历史表
+    const res = await this.$axios.$post(`${api.followInfo}/followClaimHistory`,payload);
+    return res;
+  },
+
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 12 - 0
src/store/index.js

@@ -27,6 +27,12 @@ import banner from './banner';
 import loanfollow from './loanfollow';
 import managemoney from './managemoney';
 import financeclaimadd from './financeclaimadd';
+import tUrgeHandle from './tUrgeHandle';
+import tNewAssign from './tNewAssign';
+import intelligentDocking from './intelligentDocking';
+import intelligentFollow from './intelligentFollow';
+import claimneed from './claimneed';
+import follow from './follow';
 
 Vue.use(Vuex);
 
@@ -57,6 +63,12 @@ export default new Vuex.Store({
     loanfollow,
     managemoney,
     financeclaimadd,
+    tUrgeHandle,
+    tNewAssign,
+    intelligentDocking,
+    intelligentFollow,
+    claimneed,
+    follow,
   },
   state: { ...states },
   mutations: { ...muta },

+ 43 - 0
src/store/intelligentDocking.js

@@ -0,0 +1,43 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  intelligentDockingInfo: `/api/financial/intelligentDocking`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  //列表查询
+  async dockingSearch({ commit }, payload) {
+    // 列表
+    const res = await this.$axios.$post(`${api.intelligentDockingInfo}/dockingSearch`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.intelligentDockingInfo}/${payload}`);
+    return res;
+  },
+  // 修改
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.intelligentDockingInfo}/update/${id}`, data);
+    return res;
+  },
+  // 详情
+  async one({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentDockingInfo}/one`, payload);
+    return res;
+  },
+  // 拒绝
+  async refuseDocking({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentDockingInfo}/refuseDocking`, payload);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 52 - 0
src/store/intelligentFollow.js

@@ -0,0 +1,52 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  intelligentFollow: `/api/financial/intelligentFollow`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.intelligentFollow}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+
+  // 关注前请求的接口
+  async beforFollow({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentFollow}/beforFollow`, payload);
+    return res;
+  },
+  // 授信
+  async credit({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentFollow}/credit`, payload);
+    return res;
+  },
+  // 删除
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.intelligentFollow}/${payload}`);
+    return res;
+  },
+  // 列表
+  async followIntelligent({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentFollow}/followIntelligent`, payload);
+    return res;
+  },
+  // 已完成列表
+  async getFinishList({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.intelligentFollow}/getFinishList`, payload);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 46 - 0
src/store/tNewAssign.js

@@ -0,0 +1,46 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+    characterInfo: `/api/financial/tNewAssign`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+    async query({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}/select`, { skip, limit, ...info });
+        return res;
+    },
+    async originalQuery({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}`, { skip, limit, ...info });
+        return res;
+    },
+    async financingSelect({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}/financingSelect`, { skip, limit, ...info });
+        return res;
+    },
+    async create({ commit }, payload) {
+        const res = await this.$axios.$post(`${api.characterInfo}`, payload);
+        return res;
+    },
+    async fetch({ commit }, payload) {
+        const res = await this.$axios.$get(`${api.characterInfo}/${payload}`);
+        return res;
+    },
+    async update({ commit }, { id, ...data }) {
+        const res = await this.$axios.$post(`${api.characterInfo}/update/${id}`, data);
+        return res;
+    },
+    async delete({ commit }, payload) {
+        const res = await this.$axios.$delete(`${api.characterInfo}/${payload}`);
+        return res;
+    },
+};
+export default {
+    namespaced: true,
+    state,
+    mutations,
+    actions,
+};

+ 46 - 0
src/store/tUrgeHandle.js

@@ -0,0 +1,46 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+    characterInfo: `/api/financial/tUrgeHandle`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+    async query({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}/select`, { skip, limit, ...info });
+        return res;
+    },
+    async originalQuery({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}`, { skip, limit, ...info });
+        return res;
+    },
+    async financingSelect({ commit }, { skip = 0, limit, ...info } = {}) {
+        const res = await this.$axios.$get(`${api.characterInfo}/financingSelect`, { skip, limit, ...info });
+        return res;
+    },
+    async create({ commit }, payload) {
+        const res = await this.$axios.$post(`${api.characterInfo}`, payload);
+        return res;
+    },
+    async fetch({ commit }, payload) {
+        const res = await this.$axios.$get(`${api.characterInfo}/${payload}`);
+        return res;
+    },
+    async update({ commit }, { id, ...data }) {
+        const res = await this.$axios.$post(`${api.characterInfo}/update/${id}`, data);
+        return res;
+    },
+    async delete({ commit }, payload) {
+        const res = await this.$axios.$delete(`${api.characterInfo}/${payload}`);
+        return res;
+    },
+};
+export default {
+    namespaced: true,
+    state,
+    mutations,
+    actions,
+};

+ 174 - 0
src/views/financingTNewAssign/detail.vue

@@ -0,0 +1,174 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <tNewAssignForm :ruleForm="ruleForm" :originalData="originalData" :jgList="jgList" :jgproList="jgproList" @submitForm="submitForm" @resetForm="resetForm" @jgproListSelect="jgproListSelect"></tNewAssignForm>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import detailTopInfo from '@/layout/custom/detailTopInfo.vue';
+  import tNewAssignForm from '@/layout/financingTNewAssign/tNewAssignForm.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+  const { mapActions: institution } = createNamespacedHelpers('institution');
+  const { mapActions: financeclaims } = createNamespacedHelpers('financeclaim');
+  const { mapActions: claimneed } = createNamespacedHelpers('claimneed');
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: follow } = createNamespacedHelpers('follow');
+  const { mapActions: intelligentDocking } = createNamespacedHelpers('intelligentDocking');
+  const { mapActions: intelligentFollow } = createNamespacedHelpers('intelligentFollow');
+
+  export default {
+    name: 'detail',
+    props: {},
+    components: {
+      detailTopInfo, //头部导航
+      tNewAssignForm,
+    },
+    data: () => ({
+      display: 'block',
+      topTitle: '我要融资指派',
+      ruleForm: {},
+      originalData:{},
+      jgList:[],
+      jgproList:[],
+      loading: true,
+      subject_classification_list: [],
+      subject_headings_list: [],
+      company_description_list: [],
+    }),
+    created() {
+      console.log(this.demand_id);
+      this.select();
+    },
+    computed: {
+      demand_id() {
+        return this.$route.query.demand_id;
+      },
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tNewAssign({create:'create',delete:'delete',update:'update',fetch:'fetch',query:'financingSelect'}),
+      ...dictionary({dictQuery:'query'}),
+      ...institution({institutionQuery:'query'}),
+      ...financeclaims({ financeclaimsSearchpro: 'searchpro'}),
+      ...claimneed({ claimneedFetch: 'fetch',claimneedUpdate: 'update'}),
+      ...tUrgeHandle([ 'originalQuery']),
+      ...follow({ followQuery: 'query'}),
+      ...intelligentDocking({ intelligentDockingFetch: 'fetch',intelligentDockingUpdate: 'update'}),
+      ...intelligentFollow({ intelligentFollowQuery: 'query'}),
+      async jgListSelect() {
+        const res = await this.institutionQuery({ skip:0, limit:100});
+        this.$set(this, `jgList`, res.data);
+        console.log(this.jgList);
+
+      },
+      async jgproListSelect({jg_id}) {
+        const res = await this.financeclaimsSearchpro({uid:jg_id});
+        this.$set(this, `jgproList`, res.data);
+        console.log(this.jgproList);
+      },
+      // 返回
+      goBack() {
+        this.$router.go(-1);
+      },
+      async select() {
+        if (this.demand_id) {
+          const res = await this.query({ skip:0, limit:1, demand_id: this.demand_id});
+          this.$set(this, `ruleForm`, res.data[0]);
+          this.$set(this, `originalData`, JSON.parse(JSON.stringify(res.data[0])));
+
+          this.jgListSelect();
+          this.jgproListSelect(this.originalData);
+        }
+      },
+      filterDict(dict){
+        return dict.filter((val) => {
+          return val.name !== '不限';
+        });
+      },
+      async selectDict(arr) {
+        for (let value of arr) {
+          let res = await this.dictQuery({skip:0,limit:100,type:value});
+          this.$set(this, `${value}_list`, this.filterDict(res.data));
+        }
+      },
+      // 提交
+      async submitForm({ data }) {
+
+        let resOriginalQuery = await this.originalQuery({skip:0,limit:1,type:'2',demand_id:data.demand_id});
+        if(resOriginalQuery.total === 1){
+          this.$message.error('已催办,无法指派!');
+          this.resetForm();
+          return ;
+        }
+
+        let resFollowQuery = await this.intelligentFollowQuery({skip:0,limit:1,intelligentId:data.demand_id});
+        if(resFollowQuery.total === 1){
+          this.$message.error('金融机构客户经理已接单,无法指派!');
+          this.resetForm();
+          return ;
+        }
+
+        let resFetch = await this.intelligentDockingFetch(data.demand_id);
+        if(!resFetch.data){
+          this.$message.error('指派失败');
+          this.resetForm();
+          return ;
+        }
+        if(resFetch.data.refuse_times > 2){
+          this.$message.error('金融机构已拒绝3次,无法指派!');
+          this.resetForm();
+          return ;
+        }
+
+        let dataUpdate = resFetch.data;
+        dataUpdate.jg_id = data.jg_id;
+        dataUpdate.cid =data.jg_pro_id;
+        dataUpdate.refuse_times = dataUpdate.refuse_times + 1;
+        dataUpdate.ids.push({jr_id:data.jg_id,reason:'指派操作'});
+        let resUpdate = await this.intelligentDockingUpdate(dataUpdate);
+        if(!resUpdate.data){
+          this.$message.error('指派失败');
+          this.resetForm();
+          return ;
+        }
+
+        data.type = '2';
+        data.government_id = this.user.uid;
+        data.government_name = this.user.name;
+        data.company_type = '2';
+        console.log(data);
+        let res = await this.create(data);
+        this.$checkRes(res, '指派成功', '指派失败');
+        this.resetForm();
+
+      },
+      // 取消
+      resetForm() {
+        this.$router.push({ path: '/financingTNewAssign/index' });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+    padding: 20px;
+  }
+</style>

+ 110 - 0
src/views/financingTNewAssign/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <tNewAssignList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></tNewAssignList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import tNewAssignList from '@/layout/financingTNewAssign/tNewAssignList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      tNewAssignList, //列表
+    },
+    data: () => ({
+      topTitle: '我要融资指派',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tNewAssign({query:'financingSelect'}),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.query({ skip, limit, ...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 133 - 0
src/views/financingTUrgeHandle/detail.vue

@@ -0,0 +1,133 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <tUrgeHandleForm :ruleForm="ruleForm" @submitForm="submitForm" @resetForm="resetForm"></tUrgeHandleForm>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import detailTopInfo from '@/layout/custom/detailTopInfo.vue';
+  import tUrgeHandleForm from '@/layout/financingTUrgeHandle/tUrgeHandleForm.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'detail',
+    props: {},
+    components: {
+      detailTopInfo, //头部导航
+      tUrgeHandleForm,
+    },
+    data: () => ({
+      display: 'block',
+      topTitle: '催办操作',
+      ruleForm: {},
+      loading: true,
+      subject_classification_list: [],
+      subject_headings_list: [],
+      company_description_list: [],
+    }),
+    created() {
+      console.log(this.demand_id);
+      this.select();
+      /*this.selectDict(['subject_classification','subject_headings','company_description']);*/
+    },
+    computed: {
+      demand_id() {
+        return this.$route.query.demand_id;
+      },
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tUrgeHandle({create:'create',delete:'delete',update:'update',fetch:'fetch',query:'financingSelect'}),
+      ...dictionary({dictQuery:'query'}),
+      // 返回
+      goBack() {
+        this.$router.go(-1);
+      },
+      async select() {
+        if (this.demand_id) {
+          const res = await this.query({ skip:0, limit:1, demand_id: this.demand_id});
+          this.$set(this, `ruleForm`, res.data[0]);
+        }
+      },
+      filterDict(dict){
+        return dict.filter((val) => {
+          return val.name !== '不限';
+        });
+      },
+      async selectDict(arr) {
+        for (let value of arr) {
+          let res = await this.dictQuery({skip:0,limit:100,type:value});
+          this.$set(this, `${value}_list`, this.filterDict(res.data));
+        }
+      },
+      // 提交
+      async submitForm({ data }) {
+        console.log(this.user);
+        data.type = '2';
+        data.government_id = this.user.uid;
+        data.government_name = this.user.name;
+        data.company_type = '2';
+        //console.log(data);
+        let res = await this.create(data);
+        this.$checkRes(res, '催办成功', '催办失败');
+        this.resetForm();
+
+        /*if(!data.image){
+          this.$message.error('请上传图片');
+          return ;
+        }*/
+       /* let res;
+        if (this.id) {
+          if(data.current_state !== '0'){
+            this.$message.error('只有"未审核"的政策允许修改');
+            return ;
+          }
+          res = await this.update(data);
+          if (res.errcode === 0) {
+            this.$message({
+              message: '信息修改成功',
+              type: 'success',
+            });
+          }
+        } else {
+          data.current_approval_id = this.user.uid;
+          res = await this.create(data);
+          if (res.errcode === 0) {
+            this.$message({
+              message: '信息创建成功',
+              type: 'success',
+            });
+          }
+        }
+        if (this.$checkRes(res)) this.resetForm();*/
+      },
+      // 取消
+      resetForm() {
+        this.$router.push({ path: '/financingTUrgeHandle/index' });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+    padding: 20px;
+  }
+</style>

+ 110 - 0
src/views/financingTUrgeHandle/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <tUrgeHandleList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></tUrgeHandleList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import tUrgeHandleList from '@/layout/financingTUrgeHandle/tUrgeHandleList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      tUrgeHandleList, //列表
+    },
+    data: () => ({
+      topTitle: '催办操作',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tUrgeHandle({query:'financingSelect'}),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.query({ skip, limit, ...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 110 - 0
src/views/financingTUrgeHandle/seeIndex.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <seeList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></seeList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import seeList from '@/layout/financingTUrgeHandle/seeList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      seeList, //列表
+    },
+    data: () => ({
+      topTitle: '催办查看',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'query','originalQuery']),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.originalQuery({ skip, limit, type:'2',...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 15 - 1
src/views/institution/detail.vue

@@ -6,7 +6,15 @@
           <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
         </el-col>
         <el-col :span="24" class="main">
-          <detailInfo :ruleForm="ruleForm" :rzlc="rzlc" :sshy="sshy" @submitForm="submitForm" @resetForm="resetForm" :formTitle="formTitle"></detailInfo>
+          <detailInfo
+            :ruleForm="ruleForm"
+            :rzlc="rzlc"
+            :sshy="sshy"
+            @submitForm="submitForm"
+            @resetForm="resetForm"
+            @shenheForm="shenheForm"
+            :formTitle="formTitle"
+          ></detailInfo>
         </el-col>
       </el-col>
     </el-row>
@@ -68,6 +76,12 @@ export default {
       this.$checkRes(res, '修改成功', '修改失败');
       this.$router.push({ path: '/institution/index/0' });
     },
+    async shenheForm({ data }) {
+      data.status = '2';
+      let res = this.update(data);
+      this.$checkRes(res, '审核成功', '审核失败');
+      this.$router.push({ path: '/institution/index/0' });
+    },
     // 取消
     resetForm() {
       this.$router.push({ path: '/financial/index' });

+ 77 - 0
src/views/intelligentDocking/detail.vue

@@ -0,0 +1,77 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <detailInfo :formTitle="formTitle" :form="form"></detailInfo>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import detailTopInfo from '@/layout/custom/detailTopInfo.vue';
+import detailInfo from '@/layout/intelligentDocking/detail.vue';
+import { createNamespacedHelpers, mapGetters, mapState } from 'vuex';
+const { mapActions: intelligentDocking } = createNamespacedHelpers('intelligentDocking');
+export default {
+  name: 'detail',
+  props: {},
+  components: {
+    detailTopInfo, //头部
+    detailInfo, //详情
+  },
+  data: () => ({
+    display: 'block',
+    topTitle: '银企对接已成功信息管理',
+    formTitle: '详细信息',
+    form: {
+      company: {},
+      dictionary: {},
+      finance_claims: {},
+      when: {},
+      follow: {},
+    },
+  }),
+  created() {
+    this.searchInfo();
+  },
+  computed: {
+    ...mapState(['user']),
+    intelligentId() {
+      return this.$route.query.intelligentId;
+    },
+  },
+  methods: {
+    ...intelligentDocking(['dockingSearch']),
+    // 查询详情
+    async searchInfo() {
+      if (this.intelligentId) {
+        const res = await this.dockingSearch({ id: this.intelligentId });
+        for (const val of res.result) {
+          this.$set(this, `form`, val);
+        }
+      }
+    },
+    // 返回
+    goBack() {
+      this.$router.go(-1);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.top {
+  height: 50px;
+  margin: 0 0 10px 0;
+}
+.main {
+  height: 765px;
+  background: #ffffff;
+}
+</style>

+ 67 - 0
src/views/intelligentDocking/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <topInfo :topTitle="topTitle" :display="display"></topInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <list :debtTable="debtTable" :total="total" @handleCurrentChange="handleCurrentChange"></list>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import topInfo from '@/layout/common/topInfo.vue';
+import list from '@/layout/intelligentDocking/list.vue';
+import { mapState, mapMutations, createNamespacedHelpers } from 'vuex';
+const { mapActions: intelligentFollow } = createNamespacedHelpers('intelligentFollow');
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    topInfo, //头部
+    list, //列表
+  },
+  data: () => ({
+    topTitle: '银企对接已完成列表',
+    display: 'block',
+    debtTable: [],
+    total: 0,
+  }),
+  created() {
+    this.searchInfo();
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  methods: {
+    ...intelligentFollow(['getFinishList']),
+    // 查询列表
+    async searchInfo({ skip = 1, limit = 10, ...info } = {}) {
+      const res = await this.getFinishList({ skip, limit, ...info });
+      this.$set(this, `debtTable`, res.data.res);
+      this.$set(this, `total`, res.data.total);
+    },
+    // 分页
+    async handleCurrentChange({ skip, limit, currentPage }) {
+      const res = await this.getFinishList({ skip, limit });
+      this.$set(this, `debtTable`, res.data.res);
+      this.$set(this, `total`, res.data.total);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.top {
+  height: 50px;
+  margin: 0 0 10px 0;
+}
+.main {
+  height: 765px;
+  background: #ffffff;
+}
+</style>

+ 163 - 0
src/views/tNewAssign/detail.vue

@@ -0,0 +1,163 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <tNewAssignForm :ruleForm="ruleForm" :originalData="originalData" :jgList="jgList" :jgproList="jgproList" @submitForm="submitForm" @resetForm="resetForm" @jgproListSelect="jgproListSelect"></tNewAssignForm>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import detailTopInfo from '@/layout/custom/detailTopInfo.vue';
+  import tNewAssignForm from '@/layout/tNewAssign/tNewAssignForm.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+  const { mapActions: institution } = createNamespacedHelpers('institution');
+  const { mapActions: financeclaims } = createNamespacedHelpers('financeclaim');
+  const { mapActions: claimneed } = createNamespacedHelpers('claimneed');
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: follow } = createNamespacedHelpers('follow');
+
+  export default {
+    name: 'detail',
+    props: {},
+    components: {
+      detailTopInfo, //头部导航
+      tNewAssignForm,
+    },
+    data: () => ({
+      display: 'block',
+      topTitle: '企业申请信息指派',
+      ruleForm: {},
+      originalData:{},
+      jgList:[],
+      jgproList:[],
+      loading: true,
+      subject_classification_list: [],
+      subject_headings_list: [],
+      company_description_list: [],
+    }),
+    created() {
+      console.log(this.demand_id);
+      this.select();
+    },
+    computed: {
+      demand_id() {
+        return this.$route.query.demand_id;
+      },
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tNewAssign(['create', 'delete', 'update', 'fetch', 'query']),
+      ...dictionary({dictQuery:'query'}),
+      ...institution({institutionQuery:'query'}),
+      ...financeclaims({ financeclaimsSearchpro: 'searchpro'}),
+      ...claimneed({ claimneedFetch: 'fetch',claimneedUpdate: 'update'}),
+      ...tUrgeHandle([ 'originalQuery']),
+      ...follow({ followQuery: 'query'}),
+      async jgListSelect() {
+        const res = await this.institutionQuery({ skip:0, limit:100});
+        this.$set(this, `jgList`, res.data);
+        console.log(this.jgList);
+
+      },
+      async jgproListSelect({jg_id}) {
+        const res = await this.financeclaimsSearchpro({uid:jg_id});
+        this.$set(this, `jgproList`, res.data);
+        console.log(this.jgproList);
+      },
+      // 返回
+      goBack() {
+        this.$router.go(-1);
+      },
+      async select() {
+        if (this.demand_id) {
+          const res = await this.query({ skip:0, limit:1, demand_id: this.demand_id});
+          this.$set(this, `ruleForm`, res.data[0]);
+          this.$set(this, `originalData`, JSON.parse(JSON.stringify(res.data[0])));
+
+          this.jgListSelect();
+          this.jgproListSelect(this.originalData);
+        }
+      },
+      filterDict(dict){
+        return dict.filter((val) => {
+          return val.name !== '不限';
+        });
+      },
+      async selectDict(arr) {
+        for (let value of arr) {
+          let res = await this.dictQuery({skip:0,limit:100,type:value});
+          this.$set(this, `${value}_list`, this.filterDict(res.data));
+        }
+      },
+      // 提交
+      async submitForm({ data }) {
+
+        let resOriginalQuery = await this.originalQuery({skip:0,limit:1,type:'1',demand_id:data.demand_id});
+        if(resOriginalQuery.total === 1){
+          this.$message.error('已催办,无法指派!');
+          this.resetForm();
+          return ;
+        }
+
+        let resFollowQuery = await this.followQuery({skip:0,limit:1,finceType:'0',finceId:data.demand_id});
+        if(resFollowQuery.total === 1){
+          this.$message.error('金融机构客户经理已接单,无法指派!');
+          this.resetForm();
+          return ;
+        }
+
+        let resFetch = await this.claimneedFetch(data.demand_id);
+        if(!resFetch.data){
+          this.$message.error('指派失败');
+          this.resetForm();
+          return ;
+        }
+
+        let dataUpdate = resFetch.data;
+        dataUpdate.jg_id = data.jg_id;
+        dataUpdate.jg_pro_id =data.jg_pro_id;
+        let resUpdate = await this.claimneedUpdate(dataUpdate);
+        if(!resUpdate.data){
+          this.$message.error('指派失败');
+          this.resetForm();
+          return ;
+        }
+
+        data.type = '1';
+        data.government_id = this.user.uid;
+        data.government_name = this.user.name;
+        data.company_type = '2';
+        console.log(data);
+        let res = await this.create(data);
+        this.$checkRes(res, '指派成功', '指派失败');
+        this.resetForm();
+
+      },
+      // 取消
+      resetForm() {
+        this.$router.push({ path: '/tNewAssign/index' });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+    padding: 20px;
+  }
+</style>

+ 110 - 0
src/views/tNewAssign/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <tNewAssignList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></tNewAssignList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import tNewAssignList from '@/layout/tNewAssign/tNewAssignList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tNewAssign } = createNamespacedHelpers('tNewAssign');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      tNewAssignList, //列表
+    },
+    data: () => ({
+      topTitle: '企业申请信息指派',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tNewAssign(['create', 'delete', 'update', 'fetch', 'query']),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.query({ skip, limit, ...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 133 - 0
src/views/tUrgeHandle/detail.vue

@@ -0,0 +1,133 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="top">
+          <detailTopInfo :topTitle="topTitle" :display="display" @goBack="goBack"></detailTopInfo>
+        </el-col>
+        <el-col :span="24" class="main">
+          <tUrgeHandleForm :ruleForm="ruleForm" @submitForm="submitForm" @resetForm="resetForm"></tUrgeHandleForm>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import detailTopInfo from '@/layout/custom/detailTopInfo.vue';
+import tUrgeHandleForm from '@/layout/tUrgeHandle/tUrgeHandleForm.vue';
+import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+export default {
+  name: 'detail',
+  props: {},
+  components: {
+    detailTopInfo, //头部导航
+    tUrgeHandleForm,
+  },
+  data: () => ({
+    display: 'block',
+    topTitle: '催办操作',
+    ruleForm: {},
+    loading: true,
+    subject_classification_list: [],
+    subject_headings_list: [],
+    company_description_list: [],
+  }),
+  created() {
+    console.log(this.demand_id);
+    this.select();
+    /*this.selectDict(['subject_classification','subject_headings','company_description']);*/
+  },
+  computed: {
+    demand_id() {
+      return this.$route.query.demand_id;
+    },
+    ...mapState(['user']),
+  },
+  methods: {
+    ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'query']),
+    ...dictionary({ dictQuery: 'query' }),
+    // 返回
+    goBack() {
+      this.$router.go(-1);
+    },
+    async select() {
+      if (this.demand_id) {
+        const res = await this.query({ skip: 0, limit: 1, demand_id: this.demand_id });
+        this.$set(this, `ruleForm`, res.data[0]);
+      }
+    },
+    filterDict(dict) {
+      return dict.filter(val => {
+        return val.name !== '不限';
+      });
+    },
+    async selectDict(arr) {
+      for (let value of arr) {
+        let res = await this.dictQuery({ skip: 0, limit: 100, type: value });
+        this.$set(this, `${value}_list`, this.filterDict(res.data));
+      }
+    },
+    // 提交
+    async submitForm({ data }) {
+      console.log(this.user);
+      data.type = '1';
+      data.government_id = this.user.uid;
+      data.government_name = this.user.name;
+      data.company_type = '2';
+      //console.log(data);
+      let res = await this.create(data);
+      this.$checkRes(res, '催办成功', '催办失败');
+      this.resetForm();
+
+      /*if(!data.image){
+          this.$message.error('请上传图片');
+          return ;
+        }*/
+      /* let res;
+        if (this.id) {
+          if(data.current_state !== '0'){
+            this.$message.error('只有"未审核"的政策允许修改');
+            return ;
+          }
+          res = await this.update(data);
+          if (res.errcode === 0) {
+            this.$message({
+              message: '信息修改成功',
+              type: 'success',
+            });
+          }
+        } else {
+          data.current_approval_id = this.user.uid;
+          res = await this.create(data);
+          if (res.errcode === 0) {
+            this.$message({
+              message: '信息创建成功',
+              type: 'success',
+            });
+          }
+        }
+        if (this.$checkRes(res)) this.resetForm();*/
+    },
+    // 取消
+    resetForm() {
+      this.$router.push({ path: '/tUrgeHandle/index' });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.top {
+  height: 50px;
+  margin: 0 0 10px 0;
+}
+.main {
+  min-height: 765px;
+  background: #ffffff;
+  padding: 20px;
+}
+</style>

+ 110 - 0
src/views/tUrgeHandle/index.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <tUrgeHandleList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></tUrgeHandleList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import tUrgeHandleList from '@/layout/tUrgeHandle/tUrgeHandleList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      tUrgeHandleList, //列表
+    },
+    data: () => ({
+      topTitle: '催办操作',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'query']),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.query({ skip, limit, ...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 110 - 0
src/views/tUrgeHandle/seeIndex.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle" :display="display" @add="add"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <seeList :tableData="tableData" :total="total" @deleteRow="deleteRow" @select="select" @updateState="updateState"></seeList>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+  import topInfo from '@/layout/custom/topInfo.vue';
+  import seeList from '@/layout/tUrgeHandle/seeList.vue';
+  import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
+  const { mapActions: tUrgeHandle } = createNamespacedHelpers('tUrgeHandle');
+  const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
+
+  export default {
+    name: 'index',
+    props: {},
+    components: {
+      topInfo, //头部导航
+      seeList, //列表
+    },
+    data: () => ({
+      topTitle: '催办查看',
+      display: '',
+      tableData: [],
+      total: 0,
+    }),
+    created() {
+      this.select();
+    },
+    computed: {
+      ...mapState(['user']),
+    },
+    methods: {
+      ...tUrgeHandle(['create', 'delete', 'update', 'fetch', 'query','originalQuery']),
+      ...dictionary({dictQuery:'query'}),
+      async select({ skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.originalQuery({ skip, limit, type:'1',...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `tableData`, res.data);
+          this.$set(this, `total`, res.total);
+        }
+      },
+      add() {
+        this.$router.push({ path: '/tDeclarationApproval/detail' });
+      },
+      async deleteRow({ id, skip = 0, limit = 10, ...info } = {}) {
+        const res = await this.delete(id);
+        this.$checkRes(res, '删除成功', '删除失败');
+        this.select({ skip, limit, ...info });
+      },
+      async publish({ row ,skip = 0, limit = 10, ...info } = {}){
+        let res = await this.update({id:row.id,publish_state:1,publish_state_description:'已发布',publish_time:new Date().getTime()});
+        this.$checkRes(res, '发布成功', '发布失败');
+        this.select({ skip, limit, ...info });
+      },
+      async updateState({ id ,state ,result,skip = 0, limit = 10, ...info } = {}){
+        let res = null;
+        switch(state)
+        {
+          case '0':
+            break ;
+          case '1':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '2':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '审核成功', '审核失败');
+            break;
+          case '3':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '停用成功', '停用失败');
+            break;
+          case '9':
+            res = await this.state({id:id,current_approval_id:this.user.uid,state:state,state_description:'',result_description:result});
+            this.$checkRes(res, '完成成功', '完成失败');
+            break;
+        }
+        this.select({ skip, limit, ...info });
+      },
+    },
+  };
+</script>
+
+<style lang="less" scoped>
+  .top {
+    height: 50px;
+    margin: 0 0 10px 0;
+  }
+  .main {
+    min-height: 765px;
+    background: #ffffff;
+  }
+  .search {
+    width: 97%;
+    height: 35px;
+    margin: 20px;
+  }
+  .list {
+    padding: 0 20px;
+  }
+</style>

+ 1 - 1
vue.config.js

@@ -34,7 +34,7 @@ module.exports = {
         ws: true,
       },
       '/api': {
-        target: 'http://free.liaoningdoupo.com',
+        target: 'http://124.235.209.122:88',
         changeOrigin: true,
         ws: true,
       },