|
@@ -0,0 +1,842 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="app-container">
|
|
|
|
+ <el-collapse v-model="activeName" @change="handleChange">
|
|
|
|
+ <el-collapse-item>
|
|
|
|
+ <template slot="title">
|
|
|
|
+ <span style="font-size:20px; margin-left:20px;letter-spacing:2px;color:red">
|
|
|
|
+ <i class="el-icon-warning"></i>
|
|
|
|
+ <span> 当前节点:{{ currentNode == null ? '???' : currentNode.nodeName }}</span>
|
|
|
|
+ <span> 项目编号:{{ nodeBusinessInfo.businessSubId }}</span>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="font-size:15px; margin-left:15px;letter-spacing:2px; color:RGB(168,168,168)">
|
|
|
|
+ 点击展开查看实时流程图
|
|
|
|
+ </span>
|
|
|
|
+ </template>
|
|
|
|
+ <WorkflowBoard ref='board' @workflowCommitVerify="workflowCommitVerify" :nodeBusinessInfo="nodeBusinessInfo" />
|
|
|
|
+ </el-collapse-item>
|
|
|
|
+ </el-collapse>
|
|
|
|
+ <el-tabs v-model="activeTagName" @tab-click="handleClick" type="border-card">
|
|
|
|
+ <el-tab-pane name="baseInfo" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-document"></i>基本信息</span>
|
|
|
|
+ <y-detail-page-layout ref="addAssetsOrder" name="assets" :editStatus="false">
|
|
|
|
+ <el-form ref="assetsFrom" :model="assetsFrom" :rules="assetsFromRules" :disabled="true">
|
|
|
|
+ <div class="createMajor-main-container">
|
|
|
|
+ <div class="postInfo-container">
|
|
|
|
+ <div>
|
|
|
|
+ <el-divider content-position="left">
|
|
|
|
+ <h3 class="title">
|
|
|
|
+ <div class="avatar-wrapper icon-title">订单</div>
|
|
|
|
+ <div class="icon-info">资产订单</div>
|
|
|
|
+ </h3>
|
|
|
|
+ </el-divider>
|
|
|
|
+ </div>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="客户经理:" prop="clientManager"
|
|
|
|
+ label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input :value="assetsFrom.clientManagerName" class="filter-item" readonly disabled
|
|
|
|
+ style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6">
|
|
|
|
+ <el-form-item label="接单部门:" prop="departmentId"
|
|
|
|
+ label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="assetsFrom.departmentId">
|
|
|
|
+ <!-- <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option> -->
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item prop="name" label-width="120px"
|
|
|
|
+ class="postInfo-container-item" label="项目名称:">
|
|
|
|
+ <el-input v-model="assetsFrom.name" class="filter-item" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="业务类型:" prop="assetsBusinessGener"
|
|
|
|
+ label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="assetsFrom.assetsBusinessGener" filterable placeholder="业务类型">
|
|
|
|
+ <el-option v-for="(s, index) in assetsBusinessGeners" :label="s.label"
|
|
|
|
+ :value="s.value"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="客户再次委托:" prop="entrustAgain"
|
|
|
|
+ label-width="140px" class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.entrustAgain" :label="false" border size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.entrustAgain" :label="true" border size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="客户类型:" prop="clienteleType"
|
|
|
|
+ label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="assetsFrom.clienteleType" placeholder="请选择"
|
|
|
|
+ @change="changeCustomerType(assetsFrom.clienteleType)">
|
|
|
|
+ <el-option label="企业" value="企业"></el-option>
|
|
|
|
+ <el-option label="个人" value="个人"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="客户名称:" prop="clienteleId" label-width="120px"
|
|
|
|
+ class="postInfo-container-item" v-if="itemHideStatus">
|
|
|
|
+ <el-select v-model="assetsFrom.clienteleId" placeholder="请选择(可搜索)" @change="findSubClientele(0)"
|
|
|
|
+ clearable filterable>
|
|
|
|
+ <el-option v-for="(c, id) in customerCompany" :label="c.name" :value="c.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="业务来源:" prop="clienteleSubId" label-width="120px"
|
|
|
|
+ class="postInfo-container-item" v-if="itemHideStatus">
|
|
|
|
+ <el-select v-model="assetsFrom.clienteleSubId" placeholder="请选择(可搜索)" @change="getCustomerContract"
|
|
|
|
+ clearable filterable>
|
|
|
|
+ <el-option v-for="(s, id) in subCustomerCompany" :label="s.name" :value="s.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="客户联系人:" prop="clienteleContactId"
|
|
|
|
+ label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <div>
|
|
|
|
+ <el-select v-model="assetsFrom.clienteleContactId" placeholder="请选择(可搜索)" clearable filterable
|
|
|
|
+ @change="" style="width:60%">
|
|
|
|
+ <el-option v-for="(c, id) in customerContract" :label="c.name" :value="c.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <!-- <el-tooltip class="item" effect="dark" content="没有联系人?点击新增" placement="top-end">
|
|
|
|
+ <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
|
|
|
|
+ @click="createLinkman(false)">新增</span>
|
|
|
|
+ </el-tooltip> -->
|
|
|
|
+ </div>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="联系人电话:" prop="mobile" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input :value="assetsFrom.linkmanMobile" class="filter-item" readonly disabled
|
|
|
|
+ style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="联系人部门:" prop="department" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input :value="assetsFrom.linkmanDepartment" class="filter-item" readonly disabled
|
|
|
|
+ style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="联系人职务:" prop="duty" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input :value="assetsFrom.linkmanDuty" class="filter-item" readonly disabled
|
|
|
|
+ style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="是否证券项目:" prop="security" label-width="140px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.security" :label="false" border size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.security" :label="true" border size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="是否资产重组项目:" prop="significantAssetsReorganization"
|
|
|
|
+ label-width="200px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.significantAssetsReorganization" :label="false" border
|
|
|
|
+ size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.significantAssetsReorganization" :label="true" border
|
|
|
|
+ size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label=" 是否国资项目:" prop="stateAssets"
|
|
|
|
+ label-width="140px" class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.stateAssets" :label="false" border size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.stateAssets" :label="true" border size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="是否涉及境外资产:" prop="foreignAssetsInvolved"
|
|
|
|
+ label-width="200px" class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.foreignAssetsInvolved" :label="false" border
|
|
|
|
+ size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.foreignAssetsInvolved" :label="true" border size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="是否分配产值:" prop="dispenseBenefit"
|
|
|
|
+ label-width="140px" class="postInfo-container-item">
|
|
|
|
+ <el-radio v-model="assetsFrom.dispenseBenefit" :label="false" border size="medium">否</el-radio>
|
|
|
|
+ <el-radio v-model="assetsFrom.dispenseBenefit" :label="true" border size="medium">是</el-radio>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="委托人:" prop="bailor" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input v-model="assetsFrom.bailor" class="filter-item" style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="委托联系人:" prop="bailorContactName" label-width="120px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-input v-model="assetsFrom.bailorContactName" class="filter-item" style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="委托人联系人电话:" prop="bailorContactTel" label-width="160px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-input v-model="assetsFrom.bailorContactTel" class="filter-item" style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="委托人地址:" prop="bailorAddress" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input v-model="assetsFrom.bailorAddress" class="filter-item" style=" width: 225px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="终端客户类型:" prop="terminalClienteleType"
|
|
|
|
+ label-width="140px" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="assetsFrom.terminalClienteleType" placeholder="请选择" style="width:205px">
|
|
|
|
+ <el-option label="企业" value="企业"></el-option>
|
|
|
|
+ <el-option label="个人" value="个人"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="assetsFrom.terminalClienteleType === '企业'">
|
|
|
|
+ <el-form-item label="终端客户名称:" prop="terminalClienteleId" label-width="140px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <div v-if="couldEdit">
|
|
|
|
+ <el-select v-model="assetsFrom.terminalClienteleId" placeholder="请选择(可搜索)"
|
|
|
|
+ @change="findSubClientele(1)" clearable filterable style="width:80%">
|
|
|
|
+ <el-option v-for="(c, id) in tCustomerCompany" :label="c.name" :value="c.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <!-- <el-tooltip class="item" effect="dark" content="没有终端客户?点击新增" placement="top-end">
|
|
|
|
+ <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
|
|
|
|
+ @click="createTerminalClient()">新增</span>
|
|
|
|
+ </el-tooltip> -->
|
|
|
|
+ </div>
|
|
|
|
+ <el-input :value="assetsFrom.tterminalClienteleName" class="filter-item" style=" width: 225px"
|
|
|
|
+ v-else />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="assetsFrom.terminalClienteleType === '个人'">
|
|
|
|
+ <el-form-item label="终端联系人:" prop="terminalClienteleContactId" label-width="120px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <div v-if="couldEdit">
|
|
|
|
+ <el-select v-model="assetsFrom.terminalClienteleContactId" placeholder="请选择(可搜索)" clearable
|
|
|
|
+ filterable @change="" style="width:80%">
|
|
|
|
+ <el-option v-for="(c, id) in tCustomerContract" :label="c.name" :value="c.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <!-- <el-tooltip class="item" effect="dark" content="没有联系人?点击新增" placement="top-end">
|
|
|
|
+ <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
|
|
|
|
+ @click="createTlinkman()">新增</span>
|
|
|
|
+ </el-tooltip> -->
|
|
|
|
+ </div>
|
|
|
|
+ <el-input :value="assetsFrom.tterminalClienteleContactName" class="filter-item"
|
|
|
|
+ style=" width: 225px" v-else />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
|
|
+ <el-form-item label="终端联系电话:" prop="clienteleType" label-width="150px"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-input :value="assetsFrom.tlinkmanMobile" class="filter-item" readonly disabled
|
|
|
|
+ style=" width: 215px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="23" :span="12">
|
|
|
|
+ <el-form-item label="备注:" prop="remark" label-width="120px" class="postInfo-container-item">
|
|
|
|
+ <el-input v-model="assetsFrom.remark" :autosize="{ minRows: 4, maxRows: 4 }" class="filter-item"
|
|
|
|
+ type="textarea" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </el-form>
|
|
|
|
+ </y-detail-page-layout>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="members" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-document"></i>项目人员</span>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="target" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-document"></i>资产评估对象</span>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="finance" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-document"></i>款项信息</span>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+<script>
|
|
|
|
+import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
|
|
|
|
+import WorkflowBoard from '@/components/workflowBoard'
|
|
|
|
+import ScanEntry from '@/components/ScanEntry'
|
|
|
|
+import { isNumber, phoneNumber, postiveInteger, isIdNumber } from '@/utils/validate'
|
|
|
|
+import { calculateTargetPrice, validateParams } from '@/utils/personalUtil'
|
|
|
|
+import HouseCertificate from '@/components/personalForms/houseCertificate'
|
|
|
|
+import LandCertificate from '@/components/personalForms/landCertificate'
|
|
|
|
+import ImmovableCertificate from '@/components/personalForms/immovableCertificate'
|
|
|
|
+import EntityInfo from '@/components/personalForms/entityInfo'
|
|
|
|
+import BackgroundInfo from '@/components/personalForms/backgroundInfo'
|
|
|
|
+import SellingAbilityInfo from '@/components/personalForms/sellingAbilityInfo'
|
|
|
|
+import existPNG from '@/assets/images/exist.png'
|
|
|
|
+import emptyPNG from '@/assets/images/empty.png'
|
|
|
|
+
|
|
|
|
+export default {
|
|
|
|
+ name: 'personalTodoDetail',
|
|
|
|
+ components: {
|
|
|
|
+ YDetailPageLayout,
|
|
|
|
+ WorkflowBoard,
|
|
|
|
+ ScanEntry,
|
|
|
|
+ HouseCertificate,
|
|
|
|
+ LandCertificate,
|
|
|
|
+ ImmovableCertificate,
|
|
|
|
+ EntityInfo,
|
|
|
|
+ BackgroundInfo,
|
|
|
|
+ SellingAbilityInfo
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ couldEdit: null,
|
|
|
|
+ couldBack: null,
|
|
|
|
+ // 表单项目隐藏字段
|
|
|
|
+ itemHideStatus: false,
|
|
|
|
+ createLinkmanVisible: false,
|
|
|
|
+ // 资产业务下单表单校验规则
|
|
|
|
+ assetsFromRules: {
|
|
|
|
+ clientManager: [
|
|
|
|
+ { required: true, message: '客户经理不能为空', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ departmentId: [
|
|
|
|
+ { required: true, message: '请选择接单部门', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ name: [
|
|
|
|
+ { required: true, message: '项目名称不能为空', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ assetsBusinessGener: [
|
|
|
|
+ { required: true, message: '请选择业务类型', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ entrustAgain: [
|
|
|
|
+ { required: true, message: '请选择客户是否再次委托', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ clienteleType: [
|
|
|
|
+ { required: true, message: '请选择客户类型', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ clienteleId: [
|
|
|
|
+ { required: true, message: '请选择客户名称', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ clienteleSubId: [
|
|
|
|
+ { required: true, message: '请选择业务来源', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ clienteleContactId: [
|
|
|
|
+ { required: true, message: '请选择客户联系人', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ security: [
|
|
|
|
+ { required: true, message: '请选择是否证券项目', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ significantAssetsReorganization: [
|
|
|
|
+ { required: true, message: '请选择是否资产重组项目', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ stateAssets: [
|
|
|
|
+ { required: true, message: '请选择是否是否国资项目', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ foreignAssetsInvolved: [
|
|
|
|
+ { required: true, message: '请选择是否 是否涉及境外资产', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ dispenseBenefit: [
|
|
|
|
+ { required: true, message: '请选择是否是否分配产值', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ terminalClienteleType: [
|
|
|
|
+ { required: true, message: '请选择终端客户类型', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ terminalClienteleId: [
|
|
|
|
+ { required: true, message: '终端客户名称不能为空', trigger: 'blur' }
|
|
|
|
+ ],
|
|
|
|
+ terminalClienteleContactId: [
|
|
|
|
+ { required: true, message: '终端联系人不能为空', trigger: 'blur' }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ workflowLogs: [],
|
|
|
|
+ activeName: 'workflowInfo',
|
|
|
|
+ activeTagName: "baseInfo",
|
|
|
|
+ nodeBusinessInfo: {
|
|
|
|
+ currentNodePermission: {
|
|
|
|
+ commit: true,
|
|
|
|
+ reversible: true,
|
|
|
|
+ restartable: true,
|
|
|
|
+ terminable: true,
|
|
|
|
+ skippable: true,
|
|
|
|
+ },
|
|
|
|
+ mainBusiness: "PERSONAL_BUSINESS",
|
|
|
|
+ doWorkflow: false,
|
|
|
|
+ businessId: null,
|
|
|
|
+ currentNodeInstanceId: null,
|
|
|
|
+ currentNodeInstanceCode: null,
|
|
|
|
+ production: [],
|
|
|
|
+ businessSubId: null,
|
|
|
|
+ ifFeedback: null
|
|
|
|
+ },
|
|
|
|
+ currentNode: {
|
|
|
|
+ flowId: null,
|
|
|
|
+ pnodeId: null,
|
|
|
|
+ nodeId: null,
|
|
|
|
+ flowCode: null,
|
|
|
|
+ nodeName: "",
|
|
|
|
+ nodeCode: null,
|
|
|
|
+ state: "",
|
|
|
|
+ instanceId: null,
|
|
|
|
+ sequence: null,
|
|
|
|
+ restartable: null,
|
|
|
|
+ reversible: null,
|
|
|
|
+ skippable: null,
|
|
|
|
+ terminable: null,
|
|
|
|
+ tasks: []
|
|
|
|
+ },
|
|
|
|
+ assetsFrom: {
|
|
|
|
+ // 项目名
|
|
|
|
+ name: null,
|
|
|
|
+ // 客户经理id
|
|
|
|
+ clientManagerId: this.$store.getters.userInfo.id,
|
|
|
|
+ // 客户经理
|
|
|
|
+ clientManagerName: this.$store.getters.userInfo.name,
|
|
|
|
+ // 接单部门id
|
|
|
|
+ departmentId: null,
|
|
|
|
+ // 资产业务类型
|
|
|
|
+ assetsBusinessGener: null,
|
|
|
|
+ // 客户再次委托
|
|
|
|
+ entrustAgain: null,
|
|
|
|
+ // 客户类型(企业,个人)
|
|
|
|
+ clienteleType: null,
|
|
|
|
+ // 客户id
|
|
|
|
+ clienteleId: null,
|
|
|
|
+ // 业务来源(下级客户id)
|
|
|
|
+ clienteleSubId: null,
|
|
|
|
+ // 客户联系人id
|
|
|
|
+ clienteleContactId: null,
|
|
|
|
+ // 是否证券项目
|
|
|
|
+ security: null,
|
|
|
|
+ // 是否资产重组项目
|
|
|
|
+ significantAssetsReorganization: null,
|
|
|
|
+ // 是否国资项目
|
|
|
|
+ stateAssets: null,
|
|
|
|
+ // 是否涉及境外资产
|
|
|
|
+ foreignAssetsInvolved: null,
|
|
|
|
+ // 是否分配产值
|
|
|
|
+ dispenseBenefit: null,
|
|
|
|
+ // 委托人
|
|
|
|
+ bailor: null,
|
|
|
|
+ // 委托人地址
|
|
|
|
+ bailorAddress: null,
|
|
|
|
+ // 委托联系人姓名
|
|
|
|
+ bailorContactName: null,
|
|
|
|
+ // 委托人联系人电话
|
|
|
|
+ bailorContactTel: null,
|
|
|
|
+ // 终端客户id
|
|
|
|
+ terminalClienteleId: null,
|
|
|
|
+ // 终端客户类型
|
|
|
|
+ terminalClienteleType: null,
|
|
|
|
+ // 终端联系人id
|
|
|
|
+ terminalClienteleContactId: null,
|
|
|
|
+ // 备注
|
|
|
|
+ remark: null,
|
|
|
|
+ // 终端联系电话
|
|
|
|
+ tmobile: null,
|
|
|
|
+ // 分单类型
|
|
|
|
+ allotType: "指派"
|
|
|
|
+ },
|
|
|
|
+ // 客户联系人信息
|
|
|
|
+ linkmanInfo: {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ //
|
|
|
|
+ pageParams: {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 业务类型下拉列表
|
|
|
|
+ assetsBusinessGeners: [
|
|
|
|
+ {
|
|
|
|
+ value: '单项资产',
|
|
|
|
+ label: '单项资产'
|
|
|
|
+ }, {
|
|
|
|
+ value: '整体资产',
|
|
|
|
+ label: '整体资产'
|
|
|
|
+ }, {
|
|
|
|
+ value: '无形资产',
|
|
|
|
+ label: '无形资产'
|
|
|
|
+ }, {
|
|
|
|
+ value: '债权',
|
|
|
|
+ label: '债权'
|
|
|
|
+ }, {
|
|
|
|
+ value: '其他',
|
|
|
|
+ label: '其他'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ // 接单部门
|
|
|
|
+ allotDepartment: [],
|
|
|
|
+ // 客户信息
|
|
|
|
+ customerCompany: [],
|
|
|
|
+ // 业务信息(二级客户)
|
|
|
|
+ subCustomerCompany: [],
|
|
|
|
+ // 客户联系人下拉列表
|
|
|
|
+ customerContract: [],
|
|
|
|
+ // 终端客户下拉列表
|
|
|
|
+ tCustomerCompany: [],
|
|
|
|
+ // 终端联系人下拉列表
|
|
|
|
+ tCustomerContract: []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ this.couldEdit = true;
|
|
|
|
+ this.couldBack = true;
|
|
|
|
+ // 获取页面参数
|
|
|
|
+ this.pageParams = this.$route.query;
|
|
|
|
+ this.getAllotDepartment();
|
|
|
|
+ this.getCustomerCompany(0);
|
|
|
|
+ this.getCustomerCompany(1);
|
|
|
|
+ this.getAssetsDetailById(this.pageParams.id);
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ methods: {
|
|
|
|
+ // 根据业务id获取资产业务详情
|
|
|
|
+ getAssetsDetailById(id) {
|
|
|
|
+ this.$api.assets.getAssetsDetailById(id).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.assetsFrom = res.data;
|
|
|
|
+ this.initCustomerSelect(this.assetsFrom.clienteleType);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ handleChange() {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ workflowCommitVerify(val, callback) {
|
|
|
|
+ let commit = val.commit;
|
|
|
|
+ let verify = new Object();
|
|
|
|
+ verify.state = true;
|
|
|
|
+ verify.productionType = this.feedback;
|
|
|
|
+ if (commit.state === 'PASS') {
|
|
|
|
+ let nodeCode = this.nodeBusinessInfo.currentNodeInstanceCode
|
|
|
|
+ switch (nodeCode) {
|
|
|
|
+ case 'DEPARTMENT_ALLOCATION':
|
|
|
|
+ if (!this.personal.outwardStaff) {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: '请确定外业人员后,再提交流程。',
|
|
|
|
+ type: 'error',
|
|
|
|
+ duration: 3000
|
|
|
|
+ });
|
|
|
|
+ verify.state = false;
|
|
|
|
+ } else {
|
|
|
|
+ verify.nextHandlerId = this.personal.outwardStaff;
|
|
|
|
+ }
|
|
|
|
+ callback(verify);
|
|
|
|
+ return;
|
|
|
|
+ case "DETERMINE_PRICE":
|
|
|
|
+ if (!this.target.feedback) {
|
|
|
|
+ verify.state = false;
|
|
|
|
+ callback(verify);
|
|
|
|
+ this.decideProductionTypeDialog = true
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ case "GENERATE_STATEMENT":
|
|
|
|
+ if (this.statementProd == null || this.statementProd.files.length === 0) {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: '请生成或上传房地产意见书后,再提交流程',
|
|
|
|
+ type: 'error',
|
|
|
|
+ duration: 3000
|
|
|
|
+ });
|
|
|
|
+ verify.state = false;
|
|
|
|
+ }
|
|
|
|
+ callback(verify);
|
|
|
|
+ return;
|
|
|
|
+ case "REVIEW_STATEMENT":
|
|
|
|
+ const id = this.statementProd.id
|
|
|
|
+ this.checkPass(id);
|
|
|
|
+ callback(verify);
|
|
|
|
+ return;
|
|
|
|
+ case "WRITE_REPORT":
|
|
|
|
+ if (this.technicReportProd == null || this.technicReportProd.files.length === 0) {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: '请生成或上传技术报告后,再提交流程',
|
|
|
|
+ type: 'error',
|
|
|
|
+ duration: 3000
|
|
|
|
+ });
|
|
|
|
+ verify.state = false;
|
|
|
|
+ callback(verify);
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (this.finalReprotProd == null || this.finalReprotProd.files.length === 0) {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: '提示',
|
|
|
|
+ message: '请生成或上传结果报告后,再提交流程',
|
|
|
|
+ type: 'error',
|
|
|
|
+ duration: 3000
|
|
|
|
+ });
|
|
|
|
+ verify.state = false;
|
|
|
|
+ callback(verify);
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ callback(verify);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ goBack() {
|
|
|
|
+ const back = this.$route.query.back
|
|
|
|
+ if (back) {
|
|
|
|
+ this.$router.push(back)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleClick(tab) {
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 改变客户类型时进行值重置的操作
|
|
|
|
+ changeCustomerType(val) {
|
|
|
|
+ // 清空联系人下拉列表
|
|
|
|
+ this.assetsFrom.clienteleContactId = null;
|
|
|
|
+ this.assetsFrom.clienteleSubId = null;
|
|
|
|
+ this.customerContract = [];
|
|
|
|
+ if (val === "企业") {
|
|
|
|
+ this.getCustomerCompany(0);
|
|
|
|
+ this.itemHideStatus = true;
|
|
|
|
+ } else {
|
|
|
|
+ this.getCustomerContract(1);
|
|
|
|
+ this.itemHideStatus = false;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ initCustomerSelect(val) {
|
|
|
|
+ if (val === "企业") {
|
|
|
|
+ this.getCustomerCompany(0);
|
|
|
|
+ this.getCustomerContract();
|
|
|
|
+ this.itemHideStatus = true;
|
|
|
|
+ } else {
|
|
|
|
+ this.getCustomerContract(1);
|
|
|
|
+ this.itemHideStatus = false;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 获取部门下拉列表
|
|
|
|
+ getAllotDepartment() {
|
|
|
|
+ this.$api.department.allot().then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.allotDepartment = res.data;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 获取客户信息
|
|
|
|
+ getCustomerCompany(val) {
|
|
|
|
+ if (val === 0) {
|
|
|
|
+ let simpleAll = new Object();
|
|
|
|
+ simpleAll.terminal = val;
|
|
|
|
+ this.$api.customerCompany.simpleAll(simpleAll).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.customerCompany = res.data;
|
|
|
|
+ this.findSubClientele(0);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ let simpleAll = new Object();
|
|
|
|
+ simpleAll.terminal = val;
|
|
|
|
+ this.$api.customerCompany.simpleAll(simpleAll).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.tCustomerCompany = res.data;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 打开新建客户联系人弹窗
|
|
|
|
+ createLinkman(val) {
|
|
|
|
+ // 打开前判断是否已经选择客户信息
|
|
|
|
+ if (this.assetsFrom.clienteleType === "个人" || this.assetsFrom.clienteleType != null && this.assetsFrom.clienteleId != null && this.assetsFrom.clienteleSubId != null) {
|
|
|
|
+ this.createLinkmanVisible = true;
|
|
|
|
+ this.linkmanFrom.terminal = val;
|
|
|
|
+ this.linkmanFrom.clienteleType = this.assetsFrom.clienteleType;
|
|
|
|
+ this.linkmanFrom.clienteleId = this.assetsFrom.clienteleId;
|
|
|
|
+ this.linkmanFrom.clienteleSubId = this.assetsFrom.clienteleSubId;
|
|
|
|
+ if (this.assetsFrom.clienteleType === '企业') {
|
|
|
|
+ this.linkmanFrom.ccId = this.assetsFrom.clienteleSubId
|
|
|
|
+ } else {
|
|
|
|
+ this.assetsFrom.clienteleSubId = 1;
|
|
|
|
+ this.linkmanFrom.ccId = this.assetsFrom.clienteleSubId;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: '警告',
|
|
|
|
+ message: '请先选择客户!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ duration: 2000
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 获取客户联系人列表
|
|
|
|
+ getCustomerContract(val) {
|
|
|
|
+ // if (this.assetsFrom.clienteleSubId) {
|
|
|
|
+ let simpleAll = new Object();
|
|
|
|
+ simpleAll.terminal = 0;
|
|
|
|
+ if (val === 1) {
|
|
|
|
+ simpleAll.ccId = val;
|
|
|
|
+ } else {
|
|
|
|
+ simpleAll.ccId = this.assetsFrom.clienteleSubId;
|
|
|
|
+ }
|
|
|
|
+ this.$api.customerLinkman.simpleAll(simpleAll).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.customerContract = res.data;
|
|
|
|
+ // if (this.assetsFrom.clienteleContactId) {
|
|
|
|
+ // this.assetsFrom.clienteleContactId = null
|
|
|
|
+ // }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ // }
|
|
|
|
+ },
|
|
|
|
+ // 获取二级客户信息(业务来源)
|
|
|
|
+ findSubClientele(val) {
|
|
|
|
+ if (val === 0) {
|
|
|
|
+ if (this.assetsFrom.clienteleId) {
|
|
|
|
+ let simpleAll = new Object();
|
|
|
|
+ simpleAll.terminal = val;
|
|
|
|
+ simpleAll.parentId = this.assetsFrom.clienteleId;
|
|
|
|
+ this.$api.customerCompany.simpleAll(simpleAll).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.subCustomerCompany = res.data;
|
|
|
|
+ // if (this.assetsFrom.clienteleSubId) {
|
|
|
|
+ // this.assetsFrom.clienteleSubId = null
|
|
|
|
+ // }
|
|
|
|
+ // if (this.assetsFrom.clienteleContactId) {
|
|
|
|
+ // this.assetsFrom.clienteleContactId = null
|
|
|
|
+ // this.customerContract = [];
|
|
|
|
+ // }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (this.assetsFrom.terminalClienteleId) {
|
|
|
|
+ let simpleAll = new Object();
|
|
|
|
+ simpleAll.terminal = val;
|
|
|
|
+ simpleAll.ccId = this.assetsFrom.terminalClienteleId;
|
|
|
|
+ this.$api.customerCompany.detail(this.assetsFrom.terminalClienteleId).then(res => {
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
+ this.assetsFrom.tmobile = res.data.phone;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 打开新增终端客户弹窗
|
|
|
|
+ createTerminalClient() {
|
|
|
|
+ this.createTerminalClientVisible = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.row-style {
|
|
|
|
+ margin-left: 40px;
|
|
|
|
+ margin-right: 1%;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.major-radio {
|
|
|
|
+ width: 92px
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.task-class {
|
|
|
|
+ /deep/ .el-form-item__label {
|
|
|
|
+ color: red;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.evaluate-table {
|
|
|
|
+ margin-left: 40px;
|
|
|
|
+ margin-top: 35px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.pane-class {
|
|
|
|
+ height: 800px;
|
|
|
|
+ width: 100%;
|
|
|
|
+ overflow-y: scroll;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/deep/ .cell-class {
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ color: black;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.table {
|
|
|
|
+ /deep/ thead {
|
|
|
|
+ .el-table-column--selection {
|
|
|
|
+ .cell {
|
|
|
|
+ display: none;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/deep/.doWarehouseClass {
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.button-area {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 20px;
|
|
|
|
+ right: 50px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.error-type {
|
|
|
|
+ margin-right: 5px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.error-type:hover {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.box-card {
|
|
|
|
+ margin-top: 40px
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.time {
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ color: #999;
|
|
|
|
+ float: right;
|
|
|
|
+ margin-top: 5px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.bottom {
|
|
|
|
+ margin-top: 13px;
|
|
|
|
+ line-height: 12px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.button {
|
|
|
|
+ float: left;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.image {
|
|
|
|
+ width: 100%;
|
|
|
|
+ padding: 0%;
|
|
|
|
+ display: block;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.control {
|
|
|
|
+ z-index: 999;
|
|
|
|
+ position: relative;
|
|
|
|
+ top: 10px;
|
|
|
|
+}
|
|
|
|
+</style>
|