orderDetail.vue 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728
  1. <template>
  2. <div class="app-container">
  3. <el-collapse v-model="activeName" @change="handleChange">
  4. <el-collapse-item>
  5. <template slot="title">
  6. <span style="font-size:20px; margin-left:20px;letter-spacing:2px;color:red">
  7. <i class="el-icon-warning"></i>
  8. <span> 当前节点:{{ currentNode == null ? '???' : currentNode.nodeName }}</span>
  9. <!-- <span v-if = "currentNode.tasks.length>0" style="margin-left:30px">任务:</span> -->
  10. <!-- <span v-for="( t,index) in currentNode.tasks" :key=index >{{t.info}}</span> -->
  11. <!-- <span style="margin-left:30px" v-if="statementNo || reportNo">该流程已取:<el-tag type="success" v-if="statementNo">{{statementNo}}</el-tag> <el-tag type="danger" v-if="reportNo">{{reportNo}}</el-tag></span> -->
  12. </span>
  13. <span style="font-size:15px; margin-left:15px;letter-spacing:2px; color:RGB(168,168,168)">
  14. 点击展开查看实时流程图
  15. </span>
  16. </template>
  17. <WorkflowBoard ref='board' @workflowCommitVerify="workflowCommitVerify" :nodeBusinessInfo="nodeBusinessInfo"
  18. @getPreviousNode="getPreviousNode" />
  19. </el-collapse-item>
  20. </el-collapse>
  21. <div class="button-area">
  22. <el-button v-if="nodeBusinessInfo.currentNodePermission.commit" class="y-save" type="success" round
  23. @click="commit('PASS')" :disabled="!nodeBusinessInfo.doWorkflow">提交</el-button>
  24. <el-button v-if="nodeBusinessInfo.currentNodePermission.reversible" class="y-save" type="warning" round
  25. @click="commit('REVERSE')" :disabled="!nodeBusinessInfo.doWorkflow">退回</el-button>
  26. <el-button v-if="nodeBusinessInfo.currentNodePermission.skippable" class="y-save" type="warning" round
  27. @click="commit('SKIP')" :disabled="!nodeBusinessInfo.doWorkflow">跳过</el-button>
  28. <el-button v-if="nodeBusinessInfo.currentNodePermission.terminable" class="y-save" type="danger" round
  29. @click="commit('TERMINATE')" :disabled="!nodeBusinessInfo.doWorkflow">终止</el-button>
  30. <el-button v-if="nodeBusinessInfo.currentNodePermission.restartable" class="y-save" type="danger" round
  31. @click="commit('RESTART')" :disabled="!nodeBusinessInfo.doWorkflow">重置</el-button>
  32. <el-button class="y-save" round type="info" @click="goBack">返回</el-button>
  33. </div>
  34. <el-tabs v-model="activeTagName" @tab-click="handleClick" type="border-card">
  35. <el-tab-pane name="baseInfo" class="pane-class" :lazy=true>
  36. <span slot="label"><i class="el-icon-document"></i>基本信息</span>
  37. <y-detail-page-layout ref="addAssetsOrder" name="assets" :editStatus="editStatus">
  38. <el-form ref="assetsForm" :model="assetsForm" :rules="assetsFormRules" :disabled="disabledStatus">
  39. <div class="createMajor-main-container">
  40. <div class="postInfo-container">
  41. <div>
  42. <el-divider content-position="left">
  43. <h3 class="title">
  44. <div class="avatar-wrapper icon-title">订单</div>
  45. <div class="icon-info">资产订单</div>
  46. </h3>
  47. </el-divider>
  48. </div>
  49. <el-row class="row-style">
  50. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  51. <el-form-item label="客户经理:" prop="clientManager" label-width="120px" class="postInfo-container-item">
  52. <el-input :value="assetsForm.clientManagerName" class="filter-item" readonly disabled
  53. style=" width: 225px" />
  54. </el-form-item>
  55. </el-col>
  56. <el-col :xs="24" :sm="12" :lg="4" :span="6">
  57. <el-form-item label="接单部门:" prop="departmentId" label-width="120px" class="postInfo-container-item">
  58. <el-select v-model="assetsForm.departmentId">
  59. <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"
  60. :key="d.id"></el-option>
  61. </el-select>
  62. </el-form-item>
  63. </el-col>
  64. </el-row>
  65. <el-row class="row-style">
  66. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  67. <el-form-item prop="name" label-width="120px" class="postInfo-container-item" label="项目名称:">
  68. <el-input v-model="assetsForm.name" class="filter-item" />
  69. </el-form-item>
  70. </el-col>
  71. </el-row>
  72. <el-row class="row-style">
  73. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  74. <el-form-item label="业务类型:" prop="assetsBusinessGener" label-width="120px"
  75. class="postInfo-container-item">
  76. <el-select v-model="assetsForm.assetsBusinessGener" filterable placeholder="业务类型">
  77. <el-option v-for="(s, index) in assetsBusinessGeners" :label="s.label" :value="s.value"
  78. :key="s.id"></el-option>
  79. </el-select>
  80. </el-form-item>
  81. </el-col>
  82. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  83. <el-form-item label="客户再次委托:" prop="entrustAgain" label-width="140px" class="postInfo-container-item">
  84. <el-radio v-model="assetsForm.entrustAgain" :label="false" border size="medium">否</el-radio>
  85. <el-radio v-model="assetsForm.entrustAgain" :label="true" border size="medium">是</el-radio>
  86. </el-form-item>
  87. </el-col>
  88. </el-row>
  89. <el-row class="row-style">
  90. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  91. <el-form-item label="客户类型:" prop="clienteleType" label-width="120px" class="postInfo-container-item">
  92. <el-select v-model="assetsForm.clienteleType" placeholder="请选择"
  93. @change="changeCustomerType(assetsForm.clienteleType)">
  94. <el-option label="企业" value="企业"></el-option>
  95. <el-option label="个人" value="个人"></el-option>
  96. </el-select>
  97. </el-form-item>
  98. </el-col>
  99. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  100. <el-form-item label="客户名称:" prop="clienteleId" label-width="120px" class="postInfo-container-item"
  101. v-if="itemHideStatus">
  102. <el-select v-model="assetsForm.clienteleId" placeholder="请选择(可搜索)" @change="findSubClientele(0)"
  103. clearable filterable>
  104. <el-option v-for="(c, id) in customerCompany" :label="c.name" :value="c.id"
  105. :key="c.id"></el-option>
  106. </el-select>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  110. <el-form-item label="业务来源:" prop="clienteleSubId" label-width="120px" class="postInfo-container-item"
  111. v-if="itemHideStatus">
  112. <el-select v-model="assetsForm.clienteleSubId" placeholder="请选择(可搜索)" @change="getCustomerContract"
  113. clearable filterable>
  114. <el-option v-for="(s, id) in subCustomerCompany" :label="s.name" :value="s.id"
  115. :key="s.id"></el-option>
  116. </el-select>
  117. </el-form-item>
  118. </el-col>
  119. </el-row>
  120. <el-row class="row-style">
  121. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  122. <el-form-item label="客户联系人:" prop="clienteleContactId" label-width="120px"
  123. class="postInfo-container-item">
  124. <div>
  125. <el-select v-model="assetsForm.clienteleContactId" placeholder="请选择(可搜索)" clearable filterable
  126. @change="" style="width:60%">
  127. <el-option v-for="(c, id) in customerContract" :label="c.name" :value="c.id"
  128. :key="c.id"></el-option>
  129. </el-select>
  130. <!-- <el-tooltip class="item" effect="dark" content="没有联系人?点击新增" placement="top-end">
  131. <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
  132. @click="createLinkman(false)">新增</span>
  133. </el-tooltip> -->
  134. </div>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  138. <el-form-item label="联系人电话:" prop="mobile" label-width="120px" class="postInfo-container-item">
  139. <el-input :value="assetsForm.linkmanMobile" class="filter-item" readonly disabled
  140. style=" width: 225px" />
  141. </el-form-item>
  142. </el-col>
  143. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  144. <el-form-item label="联系人部门:" prop="department" label-width="120px" class="postInfo-container-item">
  145. <el-input :value="assetsForm.linkmanDepartment" class="filter-item" readonly disabled
  146. style=" width: 225px" />
  147. </el-form-item>
  148. </el-col>
  149. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  150. <el-form-item label="联系人职务:" prop="duty" label-width="120px" class="postInfo-container-item">
  151. <el-input :value="assetsForm.linkmanDuty" class="filter-item" readonly disabled
  152. style=" width: 225px" />
  153. </el-form-item>
  154. </el-col>
  155. </el-row>
  156. <el-row class="row-style">
  157. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  158. <el-form-item label="是否证券项目:" prop="security" label-width="140px" class="postInfo-container-item">
  159. <el-radio v-model="assetsForm.security" :label="false" border size="medium">否</el-radio>
  160. <el-radio v-model="assetsForm.security" :label="true" border size="medium">是</el-radio>
  161. </el-form-item>
  162. </el-col>
  163. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  164. <el-form-item label="是否资产重组项目:" prop="significantAssetsReorganization" label-width="200px"
  165. class="postInfo-container-item">
  166. <el-radio v-model="assetsForm.significantAssetsReorganization" :label="false" border
  167. size="medium">否</el-radio>
  168. <el-radio v-model="assetsForm.significantAssetsReorganization" :label="true" border
  169. size="medium">是</el-radio>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  173. <el-form-item label=" 是否国资项目:" prop="stateAssets" label-width="140px" class="postInfo-container-item">
  174. <el-radio v-model="assetsForm.stateAssets" :label="false" border size="medium">否</el-radio>
  175. <el-radio v-model="assetsForm.stateAssets" :label="true" border size="medium">是</el-radio>
  176. </el-form-item>
  177. </el-col>
  178. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  179. <el-form-item label="是否涉及境外资产:" prop="foreignAssetsInvolved" label-width="200px"
  180. class="postInfo-container-item">
  181. <el-radio v-model="assetsForm.foreignAssetsInvolved" :label="false" border
  182. size="medium">否</el-radio>
  183. <el-radio v-model="assetsForm.foreignAssetsInvolved" :label="true" border size="medium">是</el-radio>
  184. </el-form-item>
  185. </el-col>
  186. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  187. <el-form-item label="是否分配产值:" prop="dispenseBenefit" label-width="140px"
  188. class="postInfo-container-item">
  189. <el-radio v-model="assetsForm.dispenseBenefit" :label="false" border size="medium">否</el-radio>
  190. <el-radio v-model="assetsForm.dispenseBenefit" :label="true" border size="medium">是</el-radio>
  191. </el-form-item>
  192. </el-col>
  193. </el-row>
  194. <el-row class="row-style">
  195. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  196. <el-form-item label="委托人:" prop="bailor" label-width="120px" class="postInfo-container-item">
  197. <el-input v-model="assetsForm.bailor" class="filter-item" style=" width: 225px" />
  198. </el-form-item>
  199. </el-col>
  200. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  201. <el-form-item label="委托联系人:" prop="bailorContactName" label-width="120px"
  202. class="postInfo-container-item">
  203. <el-input v-model="assetsForm.bailorContactName" class="filter-item" style=" width: 225px" />
  204. </el-form-item>
  205. </el-col>
  206. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  207. <el-form-item label="委托人联系人电话:" prop="bailorContactTel" label-width="160px"
  208. class="postInfo-container-item">
  209. <el-input v-model="assetsForm.bailorContactTel" class="filter-item" style=" width: 225px" />
  210. </el-form-item>
  211. </el-col>
  212. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  213. <el-form-item label="委托人地址:" prop="bailorAddress" label-width="120px" class="postInfo-container-item">
  214. <el-input v-model="assetsForm.bailorAddress" class="filter-item" style=" width: 225px" />
  215. </el-form-item>
  216. </el-col>
  217. </el-row>
  218. <el-row class="row-style">
  219. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  220. <el-form-item label="终端客户类型:" prop="terminalClienteleType" label-width="140px"
  221. class="postInfo-container-item">
  222. <el-select v-model="assetsForm.terminalClienteleType" placeholder="请选择" style="width:205px">
  223. <el-option label="企业" value="企业"></el-option>
  224. <el-option label="个人" value="个人"></el-option>
  225. </el-select>
  226. </el-form-item>
  227. </el-col>
  228. <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="assetsForm.terminalClienteleType === '企业'">
  229. <el-form-item label="终端客户名称:" prop="terminalClienteleId" label-width="140px"
  230. class="postInfo-container-item">
  231. <div v-if="couldEdit">
  232. <el-select v-model="assetsForm.terminalClienteleId" placeholder="请选择(可搜索)"
  233. @change="findSubClientele(1)" clearable filterable style="width:80%">
  234. <el-option v-for="(c, id) in tCustomerCompany" :label="c.name" :value="c.id"
  235. :key="c.id"></el-option>
  236. </el-select>
  237. <!-- <el-tooltip class="item" effect="dark" content="没有终端客户?点击新增" placement="top-end">
  238. <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
  239. @click="createTerminalClient()">新增</span>
  240. </el-tooltip> -->
  241. </div>
  242. <el-input :value="assetsForm.tterminalClienteleName" class="filter-item" style=" width: 225px"
  243. v-else />
  244. </el-form-item>
  245. </el-col>
  246. <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="assetsForm.terminalClienteleType === '个人'">
  247. <el-form-item label="终端联系人:" prop="terminalClienteleContactId" label-width="120px"
  248. class="postInfo-container-item">
  249. <div v-if="couldEdit">
  250. <el-select v-model="assetsForm.terminalClienteleContactId" placeholder="请选择(可搜索)" clearable
  251. filterable @change="" style="width:80%">
  252. <el-option v-for="(c, id) in tCustomerContract" :label="c.name" :value="c.id"
  253. :key="c.id"></el-option>
  254. </el-select>
  255. <!-- <el-tooltip class="item" effect="dark" content="没有联系人?点击新增" placement="top-end">
  256. <span style="margin-left:5%;color:RGB(64,158,255);cursor:pointer"
  257. @click="createTlinkman()">新增</span>
  258. </el-tooltip> -->
  259. </div>
  260. <el-input :value="assetsForm.tterminalClienteleContactName" class="filter-item"
  261. style=" width: 225px" v-else />
  262. </el-form-item>
  263. </el-col>
  264. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  265. <el-form-item label="终端联系电话:" prop="clienteleType" label-width="150px"
  266. class="postInfo-container-item">
  267. <el-input :value="assetsForm.tlinkmanMobile" class="filter-item" readonly disabled
  268. style=" width: 215px" />
  269. </el-form-item>
  270. </el-col>
  271. </el-row>
  272. <el-row class="row-style">
  273. <el-col :xs="24" :sm="12" :lg="23" :span="12">
  274. <el-form-item label="备注:" prop="remark" label-width="120px" class="postInfo-container-item">
  275. <el-input v-model="assetsForm.remark" :autosize="{ minRows: 4, maxRows: 4 }" class="filter-item"
  276. type="textarea" />
  277. </el-form-item>
  278. </el-col>
  279. </el-row>
  280. </div>
  281. </div>
  282. </el-form>
  283. </y-detail-page-layout>
  284. </el-tab-pane>
  285. <el-tab-pane name="members" class="pane-class" :lazy=true>
  286. <span slot="label"><i class="el-icon-document"></i>项目人员</span>
  287. <y-detail-page-layout @save="updatePrincipalAndMembers" ref="addAssetsOrder" name="assets"
  288. :editStatus="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'">
  289. <el-form ref="assetsForm" :model="assetsForm" :rules="assetsFormRules"
  290. :disabled="currentNode.nodeCode !== 'DEPARTMENT_ALLOCATION'">
  291. <div class="createMajor-main-container">
  292. <div class="postInfo-container">
  293. <div style="margin-top: 35px;">
  294. <el-divider content-position="left">
  295. <h3 class="title">
  296. <div class="avatar-wrapper icon-title">成员</div>
  297. <div class="icon-info">项目成员</div>
  298. </h3>
  299. </el-divider>
  300. </div>
  301. <el-row class="row-style">
  302. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  303. <el-form-item label="项目负责人:" prop="principalId" label-width="120px"
  304. :class="['postInfo-container-item', currentNode.nodeCode === 'DEPARTMENT_ALLOCATION' ? 'task-class' : '']"
  305. :rules="{ required: true, message: '项目负责人不能为空', trigger: 'blur' }">
  306. <el-select v-model="assetsForm.principalId" placeholder="请选择"
  307. :filterable="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'"
  308. :clearable="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'"
  309. :readonly="currentNode.nodeCode != 'DEPARTMENT_ALLOCATION'"
  310. :disabled="currentNode.nodeCode != 'DEPARTMENT_ALLOCATION'">
  311. <el-option v-for="(p, id) in principals" :label="p.name" :value="p.id" :key="p.id"></el-option>
  312. </el-select>
  313. </el-form-item>
  314. </el-col>
  315. </el-row>
  316. <el-row class="row-style">
  317. <el-col :xs="24" :sm="12" :lg="3" :span="6">
  318. <el-form-item label="项目成员:" prop="members" label-width="120px"
  319. :class="['postInfo-container-item', currentNode.nodeCode === 'DEPARTMENT_ALLOCATION' ? 'task-class' : '']"
  320. :rules="{ required: true, message: '项目成员不能为空', trigger: 'blur' }">
  321. <el-select v-model="assetsForm.members" placeholder="请选择" multiple style=" width: 686px"
  322. :filterable="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'"
  323. :clearable="currentNode.nodeCode === 'DEPARTMENT_ALLOCATION'"
  324. :readonly="currentNode.nodeCode != 'DEPARTMENT_ALLOCATION'"
  325. :disabled="currentNode.nodeCode != 'DEPARTMENT_ALLOCATION'">
  326. <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id" :key="u.id"></el-option>
  327. </el-select>
  328. </el-form-item>
  329. </el-col>
  330. </el-row>
  331. </div>
  332. </div>
  333. </el-form>
  334. </y-detail-page-layout>
  335. </el-tab-pane>
  336. <el-tab-pane name="target" class="pane-class" :lazy=true>
  337. <span @click="getAETargetListByAssetsId()" slot="label"><i class="el-icon-document"></i>资产评估对象</span>
  338. <div class="createMajor-main-container">
  339. <div class="postInfo-container">
  340. <div style="margin-top: 35px;">
  341. <el-divider content-position="left">
  342. <h3 class="title">
  343. <div class="avatar-wrapper icon-title">评估</div>
  344. <div class="icon-info">资产评估对象</div>
  345. </h3>
  346. </el-divider>
  347. </div>
  348. <el-row>
  349. <el-col :span="2">
  350. <div>
  351. <el-statistic group-separator="," :precision="4" :value="totalEvaluateValue" title="估价对象总价(万)">
  352. <template slot="prefix">
  353. <i class="el-icon-coin"></i>
  354. </template>
  355. </el-statistic>
  356. </div>
  357. </el-col>
  358. <el-col :span="2">
  359. <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE'" type="danger"
  360. @click="openTargetDialog(), changeStatus('add')" round>添加评估对象</el-button>
  361. </el-col>
  362. </el-row>
  363. <el-table ref="multipleTable" :data="assetsEvaluationTarget" stripe :header-row-style="{ color: '#333333' }"
  364. border takeNumberItems style="width: 100%; margin-top:20px">
  365. <el-table-column type="index" label="序号" width="80" align="center">
  366. </el-table-column>
  367. <el-table-column prop="purposeName" label="评估目的" align="center" show-overflow-tooltip>
  368. </el-table-column>
  369. <el-table-column label="评估对象" align="center" show-overflow-tooltip>
  370. <template slot-scope="{row}">
  371. <span>{{ row.targetTypename }}</span>
  372. <span>--</span>
  373. <span>{{ row.secTargetTypaName }}</span>
  374. </template>
  375. </el-table-column>
  376. <el-table-column prop="theHolder" label="产权持有人" align="center" show-overflow-tooltip>
  377. </el-table-column>
  378. <el-table-column prop="valueTypeName" label="价值类型" align="center" show-overflow-tooltip>
  379. </el-table-column>
  380. <el-table-column prop="totalAssetCarryingAmount" label="总资产账面值(万)" align="center" show-overflow-tooltip>
  381. </el-table-column>
  382. <el-table-column prop="totalLiabilitiesCarryingAmount" label="总负债账面值(万)" align="center"
  383. show-overflow-tooltip>
  384. </el-table-column>
  385. <el-table-column prop="carryingAmountOfNetAssets" label="净资产账面值(万)" align="center" show-overflow-tooltip>
  386. </el-table-column>
  387. <el-table-column prop="estimatedValue" label="评估价格(万)" align="center" show-overflow-tooltip>
  388. </el-table-column>
  389. <el-table-column prop="checkValue" label="审核价格(万)" align="center" show-overflow-tooltip>
  390. </el-table-column>
  391. <el-table-column label="操作" align="center" width="100" fixed="right">
  392. <template slot-scope="scope">
  393. <el-button type="text" size="small"
  394. @click="getAssetsTargetDetail(scope.row.id), changeStatus('detail')">
  395. 查看
  396. </el-button>
  397. <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE'" type="text" size="small"
  398. @click="getAssetsTargetDetail(scope.row.id), changeStatus('edit')">
  399. 编辑
  400. </el-button>
  401. <el-button type="text" size="small" @click="assetsTargetDelete(scope.row.id)">删除</el-button>
  402. </template>
  403. </el-table-column>
  404. </el-table>
  405. </div>
  406. </div>
  407. </el-tab-pane>
  408. <el-tab-pane name="finance" class="pane-class" :lazy=true>
  409. <span slot="label" @click="getOrderFundInvoiceById()"><i class="el-icon-document"></i>款项信息</span>
  410. <div class="createMajor-main-container">
  411. <div class="postInfo-container">
  412. <div style="margin-top: 35px;">
  413. <el-divider content-position="left">
  414. <h3 class="title">
  415. <div class="avatar-wrapper icon-title">款项</div>
  416. <div class="icon-info">资产款项信息</div>
  417. </h3>
  418. </el-divider>
  419. </div>
  420. </div>
  421. <el-form ref="invoiceData" :model="invoiceData" :disabled="true">
  422. <el-row>
  423. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  424. <el-form-item label="应收金额(元):" prop="shouldAmount" label-width="120px" class="postInfo-container-item">
  425. <el-input v-model="invoiceData.shouldAmount" class="filter-item" />
  426. </el-form-item>
  427. </el-col>
  428. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  429. <el-form-item label="实收金额(元):" prop="realAmount" label-width="120px" class="postInfo-container-item">
  430. <el-input v-model="invoiceData.realAmount" class="filter-item" />
  431. </el-form-item>
  432. </el-col>
  433. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  434. <el-form-item label="剩余金额(元):" prop="leftAmount" label-width="120px" class="postInfo-container-item">
  435. <el-input v-model="invoiceData.leftAmount" class="filter-item" />
  436. </el-form-item>
  437. </el-col>
  438. </el-row>
  439. <el-row>
  440. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  441. <el-form-item label="开票类型:" prop="type" label-width="120px" class="postInfo-container-item">
  442. <el-input v-model="invoiceData.type" class="filter-item" />
  443. </el-form-item>
  444. </el-col>
  445. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  446. <el-form-item label="发票抬头:" prop="title" label-width="120px" class="postInfo-container-item">
  447. <el-input v-model="invoiceData.title" class="filter-item" />
  448. </el-form-item>
  449. </el-col>
  450. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  451. <el-form-item label="税号:" prop="taxNo" label-width="120px" class="postInfo-container-item">
  452. <el-input v-model="invoiceData.taxNo" class="filter-item" />
  453. </el-form-item>
  454. </el-col>
  455. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  456. <el-form-item label="开户银行:" prop="bankName" label-width="120px" class="postInfo-container-item">
  457. <el-input v-model="invoiceData.bankName" class="filter-item" />
  458. </el-form-item>
  459. </el-col>
  460. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  461. <el-form-item label="银行地址:" prop="bankAddress" label-width="120px" class="postInfo-container-item">
  462. <el-input v-model="invoiceData.bankAddress" class="filter-item" />
  463. </el-form-item>
  464. </el-col>
  465. <el-col :xs="24" :sm="12" :lg="6" :span="6">
  466. <el-form-item label="联系电话:" prop="bankTel" label-width="120px" class="postInfo-container-item">
  467. <el-input v-model="invoiceData.bankTel" class="filter-item" />
  468. </el-form-item>
  469. </el-col>
  470. </el-row>
  471. </el-form>
  472. </div>
  473. </el-tab-pane>
  474. </el-tabs>
  475. <el-dialog :visible.sync="targetDialogVisible" @open="clear()" @close="resettargetForm"
  476. custom-class="doWarehouseClass">
  477. <div>
  478. <el-form ref="targetForm" :model="targetForm" style="margin-top:20px" :rules="targetFormRules"
  479. :disabled="targetDisabledStatus">
  480. <el-divider content-position="left">【资产】评估对象</el-divider>
  481. <el-row class="row-style">
  482. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  483. <el-form-item label="评估目的:" prop="evaluationPurposeId" label-width="120px" class="postInfo-container-item">
  484. <el-select v-model="targetForm.evaluationPurposeId">
  485. <el-option v-for="(p, id) in assetsEvaluationTargetPurpose" :label="p.purposeName"
  486. :value="p.id"></el-option>
  487. </el-select>
  488. </el-form-item>
  489. </el-col>
  490. </el-row>
  491. <el-row class="row-style">
  492. <el-col :xs="24" :sm="12" :lg="12" :span="6" style="width: 350px;">
  493. <el-form-item label="评估对象:" prop="evaluationTypeId" label-width="120px" class="postInfo-container-item">
  494. <el-select v-model="targetForm.evaluationTypeId" @change="getTypeList(targetForm.evaluationTypeId, 2)">
  495. <el-option v-for="(t, id) in assetsEvaluationTargetType" :label="t.typeName" :value="t.id"
  496. :key="t.id"></el-option>
  497. </el-select>
  498. </el-form-item>
  499. </el-col>
  500. <el-col :xs="4" :sm="12" :lg="12" :span="6">
  501. <el-form-item prop="evaluationTypeSecId" label-width="10px" class="postInfo-container-item">
  502. <el-select v-model="targetForm.evaluationTypeSecId">
  503. <el-option v-for="(t, id) in assetsSecEvaluationTargetType" :label="t.typeName" :value="t.id"
  504. :key="t.id"></el-option>
  505. </el-select>
  506. </el-form-item>
  507. </el-col>
  508. </el-row>
  509. <el-row class="row-style">
  510. <el-col :xs="24" :sm="12" :lg="12" :span="6" style="width: 345px;">
  511. <el-form-item label="产权持有人:" prop="theHolder" label-width="120px" class="postInfo-container-item">
  512. <el-input v-model="targetForm.theHolder" class="filter-item" />
  513. </el-form-item>
  514. </el-col>
  515. </el-row>
  516. <el-row class="row-style">
  517. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  518. <el-form-item label="价值类型:" prop="assetsValueId" label-width="120px" class="postInfo-container-item">
  519. <el-select v-model="targetForm.assetsValueId">
  520. <el-option v-for="(t, id) in assetsValueType" :label="t.typeName" :value="t.id" :key="t.id"></el-option>
  521. </el-select>
  522. </el-form-item>
  523. </el-col>
  524. </el-row>
  525. <el-row class="row-style">
  526. <el-col :xs="24" :sm="12" :lg="12" :span="6" style="width: 400px;">
  527. <el-form-item label="项目负责人:" label-width="120px" class="postInfo-container-item">
  528. <el-select v-model="targetForm.principalId" placeholder="请选择" readonly disabled>
  529. <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id" :key="u.id"></el-option>
  530. </el-select>
  531. </el-form-item>
  532. </el-col>
  533. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  534. <el-form-item label="实勘人:" prop="siteIds" label-width="120px" class="postInfo-container-item">
  535. <el-select v-model="targetForm.siteIds" placeholder="请选择" readonly disabled multiple>
  536. <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id" :key="u.id"></el-option>
  537. </el-select>
  538. </el-form-item>
  539. </el-col>
  540. </el-row>
  541. <el-row class="row-style">
  542. <el-col :xs="24" :sm="12" :lg="7" :span="6">
  543. <el-form-item prop="valuationBasisDate" label-width="120px" label="估价基准日:" class="postInfo-container-item">
  544. <el-date-picker v-model="targetForm.valuationBasisDate" type="date" placeholder="选择日期" style="width:100%">
  545. </el-date-picker>
  546. </el-form-item>
  547. </el-col>
  548. </el-row>
  549. <el-row class="row-style">
  550. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  551. <el-form-item label="评估方法:" prop="evaluationMethodId" label-width="120px" class="postInfo-container-item">
  552. <el-select v-model="targetForm.evaluationMethodId">
  553. <el-option v-for="(m, id) in assetsEvaluationMethod" :label="m.methodName" :value="m.id"
  554. :key="m.id"></el-option>
  555. </el-select>
  556. </el-form-item>
  557. </el-col>
  558. </el-row>
  559. <el-row class="row-style">
  560. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  561. <el-form-item label="最终选择的评估方法:" prop="choiceEvaluationMethodId" label-width="200px"
  562. class="postInfo-container-item">
  563. <el-select v-model="targetForm.choiceEvaluationMethodId">
  564. <el-option v-for="(m, id) in assetsEvaluationMethod" :label="m.methodName" :value="m.id"
  565. :key="m.id"></el-option>
  566. </el-select>
  567. </el-form-item>
  568. </el-col>
  569. </el-row>
  570. <el-row class="row-style">
  571. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  572. <el-form-item label="总资产账面值:" prop="totalAssetCarryingAmount" label-width="140px"
  573. class="postInfo-container-item">
  574. <el-input-number v-model="targetForm.totalAssetCarryingAmount" controls-position="right" :precision="2"
  575. :step="0.1"></el-input-number>
  576. <span>(万)</span>
  577. </el-form-item>
  578. </el-col>
  579. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  580. <el-form-item label="总负债账面值:" prop="totalLiabilitiesCarryingAmount" label-width="140px"
  581. class="postInfo-container-item">
  582. <el-input-number v-model="targetForm.totalLiabilitiesCarryingAmount" controls-position="right"
  583. :precision="2" :step="0.1"></el-input-number>
  584. <span>(万)</span>
  585. </el-form-item>
  586. </el-col>
  587. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  588. <el-form-item label="净资产账面值:" prop="carryingAmountOfNetAssets" label-width="140px"
  589. class="postInfo-container-item">
  590. <el-input-number v-model="targetForm.carryingAmountOfNetAssets" controls-position="right" :precision="2"
  591. :step="0.1"></el-input-number>
  592. <span>(万)</span>
  593. </el-form-item>
  594. </el-col>
  595. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  596. <el-form-item label="评估结论对应的评估值:" prop="estimatedValue" label-width="200px" class="postInfo-container-item">
  597. <el-input-number v-model="targetForm.estimatedValue" controls-position="right" :precision="2"
  598. :step="0.1"></el-input-number>
  599. <span>(万)</span>
  600. </el-form-item>
  601. </el-col>
  602. </el-row>
  603. <el-row class="row-style" v-if="currentNode.nodeCode === 'REVIEW_QUOTATION'">
  604. <el-col :xs="24" :sm="12" :lg="12" :span="6">
  605. <el-form-item label="审核定价:" prop="checkValue" label-width="200px" class="postInfo-container-item">
  606. <el-input-number v-model="targetForm.checkValue" controls-position="right" :precision="2"
  607. :step="0.1"></el-input-number>
  608. <span>(万)</span>
  609. </el-form-item>
  610. </el-col>
  611. </el-row>
  612. <el-row class="row-style">
  613. <el-col :xs="24" :sm="12" :lg="18" :span="6">
  614. <el-form-item prop="filePath" label="资料附件:" label-width="120px" class="postInfo-container-item">
  615. <el-upload action="/api/upload" :limit="3" :on-success="changeres" :on-exceed="handleExceed"
  616. :on-preview="handleAttachmentPreview" :before-remove="beforeRemove" :file-list="fileList">
  617. <el-button plain type="info" round style="width: 100%">上传附件<i
  618. class="el-icon-upload el-icon--right"></i></el-button>
  619. </el-upload>
  620. </el-form-item>
  621. </el-col>
  622. </el-row>
  623. <el-row class="row-style">
  624. <el-col :xs="24" :sm="12" :lg="23" :span="12">
  625. <el-form-item label="备注:" prop="remark" label-width="120px" class="postInfo-container-item">
  626. <el-input v-model="targetForm.remark" :autosize="{ minRows: 4, maxRows: 4 }" class="filter-item"
  627. type="textarea" />
  628. </el-form-item>
  629. </el-col>
  630. </el-row>
  631. <el-row class="row-style">
  632. <el-button v-if="saveButtonStatus" @click="assetsTargetSave" style="width:100%;">保存</el-button>
  633. <el-button v-if="updateButtonStatus" @click="assetsTargetUpdate" style="width:100%;">更新</el-button>
  634. </el-row>
  635. </el-form>
  636. </div>
  637. </el-dialog>
  638. </div>
  639. </template>
  640. <script>
  641. import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
  642. import WorkflowBoard from '@/components/workflowBoard'
  643. import { isNumber, phoneNumber, postiveInteger, isIdNumber } from '@/utils/validate'
  644. import { calculateTargetPrice, validateParams } from '@/utils/personalUtil'
  645. export default {
  646. name: 'assetsDetail',
  647. components: {
  648. YDetailPageLayout,
  649. WorkflowBoard
  650. },
  651. data() {
  652. return {
  653. editStatus: false,
  654. // 资产业务表单禁用状态
  655. disabledStatus: true,
  656. // 评估对象表单禁用状态
  657. targetDisabledStatus: true,
  658. // 评估对象表单保存按钮显示状态
  659. saveButtonStatus: true,
  660. // 评估对象表单更新按钮显示状态
  661. updateButtonStatus: true,
  662. couldEdit: null,
  663. couldBack: null,
  664. // 表单项目隐藏字段
  665. itemHideStatus: false,
  666. createLinkmanVisible: false,
  667. // 文件上传数组
  668. fileList: [],
  669. // 资产业务下单表单校验规则
  670. assetsFormRules: {
  671. clientManager: [
  672. { required: true, message: '客户经理不能为空', trigger: 'blur' }
  673. ],
  674. departmentId: [
  675. { required: true, message: '请选择接单部门', trigger: 'change' }
  676. ],
  677. name: [
  678. { required: true, message: '项目名称不能为空', trigger: 'blur' }
  679. ],
  680. assetsBusinessGener: [
  681. { required: true, message: '请选择业务类型', trigger: 'change' }
  682. ],
  683. entrustAgain: [
  684. { required: true, message: '请选择客户是否再次委托', trigger: 'change' }
  685. ],
  686. clienteleType: [
  687. { required: true, message: '请选择客户类型', trigger: 'change' }
  688. ],
  689. clienteleId: [
  690. { required: true, message: '请选择客户名称', trigger: 'change' }
  691. ],
  692. clienteleSubId: [
  693. { required: true, message: '请选择业务来源', trigger: 'change' }
  694. ],
  695. clienteleContactId: [
  696. { required: true, message: '请选择客户联系人', trigger: 'change' }
  697. ],
  698. security: [
  699. { required: true, message: '请选择是否证券项目', trigger: 'change' }
  700. ],
  701. significantAssetsReorganization: [
  702. { required: true, message: '请选择是否资产重组项目', trigger: 'change' }
  703. ],
  704. stateAssets: [
  705. { required: true, message: '请选择是否是否国资项目', trigger: 'change' }
  706. ],
  707. foreignAssetsInvolved: [
  708. { required: true, message: '请选择是否 是否涉及境外资产', trigger: 'change' }
  709. ],
  710. dispenseBenefit: [
  711. { required: true, message: '请选择是否是否分配产值', trigger: 'change' }
  712. ],
  713. terminalClienteleType: [
  714. { required: true, message: '请选择终端客户类型', trigger: 'change' }
  715. ],
  716. terminalClienteleId: [
  717. { required: true, message: '终端客户名称不能为空', trigger: 'blur' }
  718. ],
  719. terminalClienteleContactId: [
  720. { required: true, message: '终端联系人不能为空', trigger: 'blur' }
  721. ]
  722. },
  723. workflowLogs: [],
  724. activeName: 'workflowInfo',
  725. activeTagName: "baseInfo",
  726. nodeBusinessInfo: {
  727. currentNodePermission: {
  728. commit: true,
  729. reversible: true,
  730. restartable: true,
  731. terminable: true,
  732. skippable: true,
  733. },
  734. mainBusiness: "ASSET_BUSINESS",
  735. doWorkflow: true,
  736. businessId: null,
  737. currentNodeInstanceId: null,
  738. currentNodeInstanceCode: null,
  739. production: [],
  740. businessSubId: null,
  741. ifFeedback: null
  742. },
  743. currentNode: {
  744. flowId: null,
  745. pnodeId: null,
  746. nodeId: null,
  747. flowCode: null,
  748. nodeName: "",
  749. nodeCode: null,
  750. state: "",
  751. instanceId: null,
  752. sequence: null,
  753. restartable: null,
  754. reversible: null,
  755. skippable: null,
  756. terminable: null,
  757. tasks: []
  758. },
  759. assetsForm: {
  760. // 项目名
  761. name: null,
  762. // 客户经理id
  763. clientManagerId: this.$store.getters.userInfo.id,
  764. // 客户经理
  765. clientManagerName: this.$store.getters.userInfo.name,
  766. // 接单部门id
  767. departmentId: null,
  768. // 资产业务类型
  769. assetsBusinessGener: null,
  770. // 客户再次委托
  771. entrustAgain: null,
  772. // 客户类型(企业,个人)
  773. clienteleType: null,
  774. // 客户id
  775. clienteleId: null,
  776. // 业务来源(下级客户id)
  777. clienteleSubId: null,
  778. // 客户联系人id
  779. clienteleContactId: null,
  780. // 是否证券项目
  781. security: null,
  782. // 是否资产重组项目
  783. significantAssetsReorganization: null,
  784. // 是否国资项目
  785. stateAssets: null,
  786. // 是否涉及境外资产
  787. foreignAssetsInvolved: null,
  788. // 是否分配产值
  789. dispenseBenefit: null,
  790. // 委托人
  791. bailor: null,
  792. // 委托人地址
  793. bailorAddress: null,
  794. // 委托联系人姓名
  795. bailorContactName: null,
  796. // 委托人联系人电话
  797. bailorContactTel: null,
  798. // 终端客户id
  799. terminalClienteleId: null,
  800. // 终端客户类型
  801. terminalClienteleType: null,
  802. // 终端联系人id
  803. terminalClienteleContactId: null,
  804. // 备注
  805. remark: null,
  806. // 终端联系电话
  807. tmobile: null,
  808. // 分单类型
  809. allotType: "指派",
  810. // 项目成员
  811. members: null,
  812. },
  813. // 客户联系人信息
  814. linkmanInfo: {
  815. },
  816. //
  817. pageParams: {
  818. },
  819. // 业务类型下拉列表
  820. assetsBusinessGeners: [
  821. {
  822. value: '单项资产',
  823. label: '单项资产'
  824. }, {
  825. value: '整体资产',
  826. label: '整体资产'
  827. }, {
  828. value: '无形资产',
  829. label: '无形资产'
  830. }, {
  831. value: '债权',
  832. label: '债权'
  833. }, {
  834. value: '其他',
  835. label: '其他'
  836. }
  837. ],
  838. // 接单部门
  839. allotDepartment: [],
  840. // 客户信息
  841. customerCompany: [],
  842. // 业务信息(二级客户)
  843. subCustomerCompany: [],
  844. // 客户联系人下拉列表
  845. customerContract: [],
  846. // 终端客户下拉列表
  847. tCustomerCompany: [],
  848. // 终端联系人下拉列表
  849. tCustomerContract: [],
  850. // 项目负责人下拉列表
  851. principals: [],
  852. // 用户下拉列表
  853. allUsers: [],
  854. // 资产评估对象信息
  855. assetsEvaluationTarget: [],
  856. // 估计对象总价
  857. totalEvaluateValue: 0.00,
  858. // 评估对象表单
  859. targetForm: {
  860. // 资产评估目的id
  861. evaluationPurposeId: null,
  862. // 资产评估对象类型一级id
  863. evaluationTypeId: null,
  864. // 资产评估对象类型二级id
  865. evaluationTypeSecId: null,
  866. // 产权持有人
  867. theHolder: null,
  868. // 资产价值类型id
  869. assetsValueId: null,
  870. // 项目负责人id
  871. principalId: null,
  872. // 实勘人id (json 可多个)
  873. siteIds: [],
  874. // 估价基准日
  875. valuationBasisDate: null,
  876. // 评估方法id
  877. evaluationMethodId: null,
  878. // 最终选择的评估方法id
  879. choiceEvaluationMethodId: null,
  880. // 总资产账面值(万)
  881. totalAssetCarryingAmount: null,
  882. // 总负债账面值(万)
  883. totalLiabilitiesCarryingAmount: null,
  884. // 净资产账面值(万)
  885. carryingAmountOfNetAssets: null,
  886. // 评估结论对应的评估值(万)
  887. estimatedValue: null,
  888. // 审核价格
  889. checkValue: null,
  890. // 资料路由信息
  891. filePath: [],
  892. // 资产业务id
  893. assetsId: null
  894. },
  895. targetFormBack: {
  896. evaluationPurposeId: null,
  897. evaluationTypeId: null,
  898. evaluationTypeSecId: null,
  899. theHolder: null,
  900. assetsValueId: null,
  901. principalId: null,
  902. siteIds: [],
  903. valuationBasisDate: null,
  904. evaluationMethodId: null,
  905. choiceEvaluationMethodId: null,
  906. totalAssetCarryingAmount: null,
  907. totalLiabilitiesCarryingAmount: null,
  908. carryingAmountOfNetAssets: null,
  909. estimatedValue: null,
  910. checkValue: null,
  911. filePath: [],
  912. assetsId: null
  913. },
  914. // 资产评估对象评估目的
  915. assetsEvaluationTargetPurpose: [],
  916. // 资产评估方法
  917. assetsEvaluationMethod: [],
  918. // 资产价值类型
  919. assetsValueType: [],
  920. // 资产评估对象类型
  921. assetsEvaluationTargetType: [],
  922. // 二级资产评估对象类型
  923. assetsSecEvaluationTargetType: [],
  924. // 评估对象弹窗可视状态
  925. targetDialogVisible: false,
  926. // 添加评估对象表单校验规则
  927. targetFormRules: {
  928. evaluationPurposeId: [
  929. { required: true, message: '请选择评估目的', trigger: 'change' }
  930. ],
  931. evaluationTypeId: [
  932. { required: true, message: '请选择评估对象', trigger: 'change' }
  933. ],
  934. evaluationTypeSecId: [
  935. { required: true, message: '请选择评估对象', trigger: 'change' }
  936. ],
  937. theHolder: [
  938. { required: true, message: '请填写产权持有人', trigger: 'blur' }
  939. ],
  940. assetsValueId: [
  941. { required: true, message: '请选择价值类型', trigger: 'change' }
  942. ],
  943. principalId: [
  944. { required: true, message: '请选择项目负责人', trigger: 'change' }
  945. ],
  946. siteIds: [
  947. { required: true, message: '请选择实勘人', trigger: 'change' }
  948. ],
  949. valuationBasisDate: [
  950. { required: true, message: '请选择价格基准日', trigger: 'change' }
  951. ],
  952. evaluationMethodId: [
  953. { required: true, message: '请选择评估方法', trigger: 'change' }
  954. ],
  955. choiceEvaluationMethodId: [
  956. { required: true, message: '请选择最终选择的评估方法', trigger: 'change' }
  957. ],
  958. totalAssetCarryingAmount: [
  959. { required: true, message: '请填写总资产账面值', trigger: 'blur' }
  960. ],
  961. totalLiabilitiesCarryingAmount: [
  962. { required: true, message: '请填写总负债账面值', trigger: 'blur' }
  963. ],
  964. carryingAmountOfNetAssets: [
  965. { required: true, message: '请填写净资产账面值', trigger: 'blur' }
  966. ],
  967. estimatedValue: [
  968. { required: true, message: '请填写评估结论对应的评估值', trigger: 'blur' }
  969. ],
  970. filePath: [
  971. { required: true, message: '请上传附件资料', trigger: 'change' }
  972. ]
  973. },
  974. // 款项信息
  975. invoiceData: {
  976. businessId: null,
  977. shouldAmount: null,
  978. realAmount: null,
  979. leftAmount: null,
  980. title: null,
  981. type: null,
  982. taxNo: null,
  983. bankName: null,
  984. bankAddress: null,
  985. bankTel: null
  986. },
  987. // 节点任务提交dto
  988. taskRecordDTO: {
  989. recordId: null,
  990. taskData: {}
  991. }
  992. }
  993. },
  994. watch: {
  995. },
  996. created() {
  997. this.couldEdit = true;
  998. this.couldBack = true;
  999. // 获取页面参数
  1000. this.pageParams = this.$route.query;
  1001. this.getCurrentNodeInfo();
  1002. this.getAllotDepartment();
  1003. this.getCustomerCompany(0);
  1004. this.getCustomerCompany(1);
  1005. this.getAssetsDetailById(this.pageParams.id);
  1006. },
  1007. methods: {
  1008. // 根据业务id获取资产业务详情
  1009. getAssetsDetailById(id) {
  1010. this.$api.assets.getAssetsDetailById(id).then(res => {
  1011. if (res.code === 200) {
  1012. this.assetsForm = res.data;
  1013. this.assetsForm.members = JSON.parse(res.data.members);
  1014. this.initCustomerSelect(this.assetsForm.clienteleType);
  1015. this.getPrincipalByAllotDepartment();
  1016. this.getAllUser();
  1017. this.$refs.board.getInstanceQueue();
  1018. }
  1019. })
  1020. },
  1021. handleChange() {
  1022. },
  1023. workflowCommitVerify(val, callback) {
  1024. let commit = val.commit;
  1025. let verify = new Object();
  1026. verify.state = true;
  1027. verify.cleanReport = false;
  1028. verify.nextHandlerId = this.secondCheckUserId;
  1029. if (commit.state === 'PASS') {
  1030. let nodeCode = this.currentNode.nodeCode;
  1031. this.getProductions(this.majorId, (this.reportNo == null ? this.statementNo : this.reportNo));
  1032. switch (nodeCode) {
  1033. case 'WRITE_STATEMENT':
  1034. let notTakeNumberTargets = this.evaluateLandData.filter(function (e) {
  1035. return e.statementNo == null;
  1036. })
  1037. if (notTakeNumberTargets.length > 0) {
  1038. this.$notify({
  1039. title: '提示',
  1040. message: '还有价值意见书号未取的估价对象,请先完成取号操作。',
  1041. type: 'error',
  1042. duration: 3000
  1043. });
  1044. verify.state = false;
  1045. callback(verify);
  1046. return;
  1047. }
  1048. if (typeof (commit.businessSubId) == 'undefined' || commit.businessSubId == null || commit.ifCheckTask == null) {
  1049. this.$notify({
  1050. title: '提示',
  1051. message: '请选择一个产品后,再进行流程提交。',
  1052. type: 'error',
  1053. duration: 3000
  1054. });
  1055. verify.state = false;
  1056. callback(verify);
  1057. return;
  1058. }
  1059. let selected = this.productions.filter(function (e) {
  1060. return e.reportNo === commit.businessSubId
  1061. })
  1062. if (!selected[0].name) {
  1063. this.$notify({
  1064. title: '提示',
  1065. message: '请完成所选产品的基本信息后,再进行流程提交。',
  1066. type: 'error',
  1067. duration: 3000
  1068. });
  1069. verify.state = false;
  1070. callback(verify);
  1071. return;
  1072. }
  1073. break;
  1074. case 'WRITE_REPORT':
  1075. let notTakeReportNoTargets = this.evaluateLandData.filter(function (e) {
  1076. return e.reportNo == null;
  1077. })
  1078. if (notTakeReportNoTargets.length > 0) {
  1079. this.$notify({
  1080. title: '提示',
  1081. message: '还有报告号未取的估价对象,请先完成取号操作。',
  1082. type: 'error',
  1083. duration: 3000
  1084. });
  1085. verify.state = false;
  1086. callback(verify);
  1087. return;
  1088. }
  1089. if (typeof (commit.businessMinId) == 'undefined' || commit.businessMinId == null || commit.ifCheckTask == null) {
  1090. this.$notify({
  1091. title: '提示',
  1092. message: '请选择一个产品后,再进行流程提交。',
  1093. type: 'error',
  1094. duration: 3000
  1095. });
  1096. verify.state = false;
  1097. callback(verify);
  1098. return;
  1099. }
  1100. let selected1 = this.productions.filter(function (e) {
  1101. return e.reportNo === commit.businessMinId
  1102. })
  1103. if (!selected1[0].name) {
  1104. this.$notify({
  1105. title: '提示',
  1106. message: '请完成所选产品的基本信息后,再进行流程提交。',
  1107. type: 'error',
  1108. duration: 3000
  1109. });
  1110. verify.state = false;
  1111. callback(verify);
  1112. return;
  1113. }
  1114. break;
  1115. case 'WRITE_LETTER':
  1116. let notTakeLetterNumberTargets = this.evaluateLandData.filter(function (e) {
  1117. return e.letterNo == null;
  1118. })
  1119. if (notTakeLetterNumberTargets.length > 0) {
  1120. this.$notify({
  1121. title: '提示',
  1122. message: '还有复评函号未取的估价对象,请先完成取号操作。',
  1123. type: 'error',
  1124. duration: 3000
  1125. });
  1126. verify.state = false;
  1127. callback(verify);
  1128. return;
  1129. }
  1130. if (typeof (commit.businessMinId) == 'undefined' || commit.businessMinId == null || commit.ifCheckTask == null) {
  1131. this.$notify({
  1132. title: '提示',
  1133. message: '请选择一个产品后,再进行流程提交。',
  1134. type: 'error',
  1135. duration: 3000
  1136. });
  1137. verify.state = false;
  1138. callback(verify);
  1139. return;
  1140. }
  1141. let selected2 = this.productions.filter(function (e) {
  1142. return e.reportNo === commit.businessMinId
  1143. })
  1144. if (!selected2[0].name) {
  1145. this.$notify({
  1146. title: '提示',
  1147. message: '请完成所选产品的基本信息后,再进行流程提交。',
  1148. type: 'error',
  1149. duration: 3000
  1150. });
  1151. verify.state = false;
  1152. callback(verify);
  1153. return;
  1154. }
  1155. break;
  1156. case "CHECK_STATEMENT":
  1157. case "CHECK_REPORT":
  1158. case "CHECK_LETTER":
  1159. if (!verify.nextHandlerId) {
  1160. verify.state = false;
  1161. callback(verify);
  1162. this.chooseSecondCheckerDialog = true
  1163. this.$api.dictData.remark("MAJOR_SECOND_CHECK_USERS").then(res => {
  1164. if (res.code === 200) {
  1165. this.secondCheckUsers = res.data;
  1166. //默认复审人
  1167. this.secondCheckUserId = res.data[0].remark;
  1168. }
  1169. })
  1170. return;
  1171. }
  1172. }
  1173. callback(verify);
  1174. }
  1175. let specialNodesForReverse = ["WRITE_STATEMENT", "WRITE_REPORT", "WRITE_LETTER"];
  1176. if (commit.state === 'REVERSE' && specialNodesForReverse.includes(this.currentNode.nodeCode)) {
  1177. this.$refs.board.getPreviousNode();
  1178. let reportNos = this.evaluateLandData.map(item => item.reportNo);
  1179. //取了子号不能退回节点
  1180. if (this.pNode.nodeCode === "QUOTATION_FEEDBACK" && reportNos[0].includes("-")) {
  1181. this.$notify({
  1182. title: '提示',
  1183. message: '该订单已取了其他子号,不能退回节点。',
  1184. type: 'info',
  1185. duration: 3000
  1186. });
  1187. verify.state = false;
  1188. verify.cleanReport = false;
  1189. callback(verify);
  1190. }
  1191. if (this.pNode.nodeCode === "QUOTATION_FEEDBACK" && !reportNos[0].includes("-")) {
  1192. verify.cleanReport = true;
  1193. callback(verify);
  1194. }
  1195. callback(verify);
  1196. }
  1197. },
  1198. goBack() {
  1199. const back = this.$route.query.back
  1200. if (back) {
  1201. this.$router.push(back)
  1202. }
  1203. },
  1204. handleClick(tab) {
  1205. },
  1206. // 改变客户类型时进行值重置的操作
  1207. changeCustomerType(val) {
  1208. // 清空联系人下拉列表
  1209. this.assetsForm.clienteleContactId = null;
  1210. this.assetsForm.clienteleSubId = null;
  1211. this.customerContract = [];
  1212. if (val === "企业") {
  1213. this.getCustomerCompany(0);
  1214. this.itemHideStatus = true;
  1215. } else {
  1216. this.getCustomerContract(1);
  1217. this.itemHideStatus = false;
  1218. }
  1219. },
  1220. initCustomerSelect(val) {
  1221. if (val === "企业") {
  1222. this.getCustomerCompany(0);
  1223. this.getCustomerContract();
  1224. this.itemHideStatus = true;
  1225. } else {
  1226. this.getCustomerContract(1);
  1227. this.itemHideStatus = false;
  1228. }
  1229. },
  1230. // 获取部门下拉列表
  1231. getAllotDepartment() {
  1232. this.$api.department.allot().then(res => {
  1233. if (res.code === 200) {
  1234. this.allotDepartment = res.data;
  1235. }
  1236. })
  1237. },
  1238. // 获取客户信息
  1239. getCustomerCompany(val) {
  1240. if (val === 0) {
  1241. let simpleAll = new Object();
  1242. simpleAll.terminal = val;
  1243. this.$api.customerCompany.simpleAll(simpleAll).then(res => {
  1244. if (res.code === 200) {
  1245. this.customerCompany = res.data;
  1246. this.findSubClientele(0);
  1247. }
  1248. })
  1249. } else {
  1250. let simpleAll = new Object();
  1251. simpleAll.terminal = val;
  1252. this.$api.customerCompany.simpleAll(simpleAll).then(res => {
  1253. if (res.code === 200) {
  1254. this.tCustomerCompany = res.data;
  1255. }
  1256. })
  1257. }
  1258. },
  1259. // 打开新建客户联系人弹窗
  1260. createLinkman(val) {
  1261. // 打开前判断是否已经选择客户信息
  1262. if (this.targetFassetsFormorm.clienteleType === "个人" || this.assetsForm.clienteleType != null && this.assetsForm.clienteleId != null && this.assetsForm.clienteleSubId != null) {
  1263. this.createLinkmanVisible = true;
  1264. this.linkmanFrom.terminal = val;
  1265. this.linkmanFrom.clienteleType = this.assetsForm.clienteleType;
  1266. this.linkmanFrom.clienteleId = this.assetsForm.clienteleId;
  1267. this.linkmanFrom.clienteleSubId = this.assetsForm.clienteleSubId;
  1268. if (this.assetsForm.clienteleType === '企业') {
  1269. this.linkmanFrom.ccId = this.assetsForm.clienteleSubId
  1270. } else {
  1271. this.assetsForm.clienteleSubId = 1;
  1272. this.linkmanFrom.ccId = this.assetsForm.clienteleSubId;
  1273. }
  1274. } else {
  1275. this.$notify({
  1276. title: '警告',
  1277. message: '请先选择客户!',
  1278. type: 'warning',
  1279. duration: 2000
  1280. });
  1281. }
  1282. },
  1283. // 获取客户联系人列表
  1284. getCustomerContract(val) {
  1285. // if (this.assetsForm.clienteleSubId) {
  1286. let simpleAll = new Object();
  1287. simpleAll.terminal = 0;
  1288. if (val === 1) {
  1289. simpleAll.ccId = val;
  1290. } else {
  1291. simpleAll.ccId = this.assetsForm.clienteleSubId;
  1292. }
  1293. this.$api.customerLinkman.simpleAll(simpleAll).then(res => {
  1294. if (res.code === 200) {
  1295. this.customerContract = res.data;
  1296. }
  1297. })
  1298. // }
  1299. },
  1300. // 获取二级客户信息(业务来源)
  1301. findSubClientele(val) {
  1302. if (val === 0) {
  1303. if (this.assetsForm.clienteleId) {
  1304. let simpleAll = new Object();
  1305. simpleAll.terminal = val;
  1306. simpleAll.parentId = this.assetsForm.clienteleId;
  1307. this.$api.customerCompany.simpleAll(simpleAll).then(res => {
  1308. if (res.code === 200) {
  1309. this.subCustomerCompany = res.data;
  1310. }
  1311. })
  1312. }
  1313. } else {
  1314. if (this.assetsForm.terminalClienteleId) {
  1315. let simpleAll = new Object();
  1316. simpleAll.terminal = val;
  1317. simpleAll.ccId = this.assetsForm.terminalClienteleId;
  1318. this.$api.customerCompany.detail(this.assetsForm.terminalClienteleId).then(res => {
  1319. if (res.code === 200) {
  1320. this.assetsForm.tmobile = res.data.phone;
  1321. }
  1322. })
  1323. }
  1324. }
  1325. },
  1326. // 打开新增终端客户弹窗
  1327. createTerminalClient() {
  1328. this.createTerminalClientVisible = true;
  1329. },
  1330. // 根据部门id获取项目负责人列表
  1331. getPrincipalByAllotDepartment() {
  1332. let departmentId = this.assetsForm.departmentId;
  1333. if (departmentId) {
  1334. this.$api.user.usersByDepartmentId(departmentId).then(res => {
  1335. if (res.code === 200) {
  1336. this.principals = res.data;
  1337. }
  1338. })
  1339. }
  1340. },
  1341. // 获取用户下拉列表
  1342. getAllUser() {
  1343. this.$api.user.simpleAll().then(res => {
  1344. if (res.code === 200) {
  1345. this.allUsers = res.data;
  1346. }
  1347. })
  1348. },
  1349. // 获取流程节点信息
  1350. getCurrentNodeInfo() {
  1351. if (this.pageParams.id) {
  1352. this.$api.workNodeInstance.currentNode({ "mainBusiness": "ASSET_BUSINESS", "businessId": this.pageParams.id, "businessSubId": this.pageParams.businessSubId, "businessMinId": this.pageParams.businessMinId }).then(res => {
  1353. if (res.code === 200) {
  1354. if (res.data) {
  1355. this.currentNode = res.data;
  1356. this.nodeBusinessInfo.currentInstanceNodeId = res.data.instanceId;
  1357. this.nodeBusinessInfo.currentNodeInstanceCode = res.data.nodeCode;
  1358. this.nodeBusinessInfo.currentNodePermission.restartable = res.data.restartable;
  1359. this.nodeBusinessInfo.currentNodePermission.reversible = res.data.reversible;
  1360. this.nodeBusinessInfo.currentNodePermission.skippable = res.data.skippable;
  1361. this.nodeBusinessInfo.currentNodePermission.terminable = res.data.terminable;
  1362. this.nodeBusinessInfo.businessId = this.pageParams.id;
  1363. }
  1364. }
  1365. })
  1366. }
  1367. },
  1368. // 修改项目负责人与项目成员信息
  1369. updatePrincipalAndMembers() {
  1370. let assetsPrincipalMembers = new Object();
  1371. assetsPrincipalMembers.id = this.assetsForm.id;
  1372. assetsPrincipalMembers.principalId = this.assetsForm.principalId;
  1373. assetsPrincipalMembers.members = JSON.stringify(this.assetsForm.members);
  1374. this.taskRecordDTO.recordId = this.currentNode.tasks[0].recordId;
  1375. this.taskRecordDTO.taskData = assetsPrincipalMembers;
  1376. this.$api.assets.updatePrincipalAndMembers(this.taskRecordDTO).then(res => {
  1377. if (res.code === 200 && res.data) {
  1378. this.$notify({
  1379. title: '成功',
  1380. message: '保存成功,请提交节点继续流程。',
  1381. type: 'success',
  1382. duration: 2000
  1383. });
  1384. }
  1385. })
  1386. },
  1387. // 根据节点返回不同的操作按钮信息
  1388. hanlderType() {
  1389. if (this.currentNode) {
  1390. if (this.currentNode.nodeCode === 'SPOT_RECONNAISSANCE') {
  1391. return "编辑";
  1392. }
  1393. if (this.currentNode.nodeCode === 'INITIAL_PRICE') {
  1394. return "定价";
  1395. }
  1396. if (this.currentNode.nodeCode === 'REVIEW_QUOTATION') {
  1397. return "审核定价";
  1398. }
  1399. return "查看";
  1400. }
  1401. },
  1402. // 根据资产业务id获取资产业务评估对象集合
  1403. getAETargetListByAssetsId() {
  1404. this.$api.assets.getAETargetListByAssetsId(this.assetsForm.id).then(res => {
  1405. if (res.code === 200) {
  1406. this.assetsEvaluationTarget = res.data;
  1407. }
  1408. })
  1409. },
  1410. // 获取所有资产评估目的集合
  1411. getPurpose() {
  1412. this.$api.assets.getPurpose().then(res => {
  1413. if (res.code === 200) {
  1414. this.assetsEvaluationTargetPurpose = res.data;
  1415. }
  1416. })
  1417. },
  1418. // 获取所有评估方法集合
  1419. getAssetsEvaluationMethod() {
  1420. this.$api.assets.getAssetsEvaluationMethod().then(res => {
  1421. if (res.code === 200) {
  1422. this.assetsEvaluationMethod = res.data;
  1423. }
  1424. })
  1425. },
  1426. // 获取所有资产价值类型
  1427. getAssetsValueType() {
  1428. this.$api.assets.getAssetsValueType().then(res => {
  1429. if (res.code === 200) {
  1430. this.assetsValueType = res.data;
  1431. }
  1432. })
  1433. },
  1434. // 根据父级id获取资产评估对象类型(id可为空)
  1435. getTypeList(val, level) {
  1436. let parentId = val;
  1437. // 每次进入方法清空二级下拉选择
  1438. // this.targetForm.evaluationTypeSecId = null;
  1439. this.assetsSecEvaluationTargetType = [];
  1440. this.$api.assets.getTypeList(parentId).then(res => {
  1441. if (res.code === 200) {
  1442. if (level == 1) {
  1443. // 等级为1赋值给assetsEvaluationTargetType
  1444. this.assetsEvaluationTargetType = res.data;
  1445. } else {
  1446. // 其他赋值给assetsEvaluationTargetType
  1447. this.assetsSecEvaluationTargetType = res.data;
  1448. }
  1449. }
  1450. })
  1451. },
  1452. // 打开新增评估对象弹窗表单
  1453. openTargetDialog() {
  1454. // 可视状态为true
  1455. this.targetDialogVisible = true;
  1456. // 初始表单所需信息
  1457. this.targetForm.principalId = this.assetsForm.principalId;
  1458. this.targetForm.siteIds = this.assetsForm.members;
  1459. if (this.assetsEvaluationTargetPurpose.length == 0 || this.assetsEvaluationMethod.length == 0 || this.assetsValueType.length == 0 || this.assetsEvaluationTargetType.length == 0) {
  1460. this.getPurpose();
  1461. this.getAssetsEvaluationMethod();
  1462. this.getAssetsValueType();
  1463. this.getTypeList(0, 1);
  1464. }
  1465. },
  1466. // 文件选择改变触发事件
  1467. changeres(res, file, fileList) {
  1468. // 上传成功向表单附件信息数组添加信息
  1469. if (res.code === 200) {
  1470. this.targetForm.filePath.push({ name: file.name, url: res.data.url });
  1471. } else {
  1472. this.$notify({
  1473. title: '错误',
  1474. message: '电子文档上传失败',
  1475. type: 'error',
  1476. duration: 2000
  1477. });
  1478. }
  1479. },
  1480. // 文件上传数量限制
  1481. handleExceed() {
  1482. this.$message.warning(`当前限制选择 3个文件!`);
  1483. },
  1484. // 打开Windows文件选择器
  1485. handleAttachmentPreview(file) {
  1486. window.open(file.url)
  1487. },
  1488. // 移除文件
  1489. beforeRemove(file, fileList) {
  1490. fileList = fileList.filter((o) => {
  1491. return o.name !== file.name
  1492. });
  1493. this.targetForm.filePath = this.targetForm.filePath.filter((o) => {
  1494. return o.name !== file.name
  1495. });
  1496. },
  1497. resettargetForm() {
  1498. this.targetForm = this.targetFormBack;
  1499. this.fileList = [];
  1500. },
  1501. clear() {
  1502. if (this.$refs.targetForm !== undefined) {
  1503. this.$refs.targetForm.clearValidate();
  1504. }
  1505. },
  1506. // 保存新增资产业务评估对象
  1507. assetsTargetSave() {
  1508. this.$refs.targetForm.validate(valid => {
  1509. if (valid) {
  1510. this.targetForm.assetsId = this.targetForm.id;
  1511. this.targetForm.siteIds = JSON.stringify(this.targetForm.siteIds);
  1512. this.targetForm.filePath = JSON.stringify(this.targetForm.filePath);
  1513. this.$api.assets.assetsTargetSave(this.targetForm).then(res => {
  1514. if (res.code === 200) {
  1515. this.$notify({
  1516. title: '成功',
  1517. message: '添加资产业务评估对象成功!',
  1518. type: 'success',
  1519. duration: 2000
  1520. });
  1521. setTimeout(() => {
  1522. this.targetDialogVisible = false;
  1523. //获取评估对象列表
  1524. this.getAETargetListByAssetsId();
  1525. }, 2000);
  1526. }
  1527. })
  1528. }
  1529. })
  1530. },
  1531. // 根据id获取资产评估对象详情
  1532. getAssetsTargetDetail(id) {
  1533. this.$api.assets.getAssetsTargetDetail(id).then(res => {
  1534. if (res.code === 200) {
  1535. this.targetForm = res.data;
  1536. this.targetForm.siteIds = JSON.parse(res.data.siteIds);
  1537. this.targetForm.filePath = JSON.parse(res.data.filePath);
  1538. this.fileList = this.targetForm.filePath
  1539. this.getTypeList(this.targetForm.evaluationTypeId, 2);
  1540. this.openTargetDialog();
  1541. }
  1542. })
  1543. },
  1544. // 更新资产评估对象
  1545. assetsTargetUpdate() {
  1546. this.$refs.targetForm.validate(valid => {
  1547. if (valid) {
  1548. this.targetForm.assetsId = this.targetForm.id;
  1549. this.targetForm.siteIds = JSON.stringify(this.targetForm.siteIds);
  1550. this.targetForm.filePath = JSON.stringify(this.targetForm.filePath);
  1551. this.$api.assets.assetsTargetUpdate(this.targetForm).then(res => {
  1552. if (res.code === 200) {
  1553. this.$notify({
  1554. title: '成功',
  1555. message: '更新资产业务评估对象成功!',
  1556. type: 'success',
  1557. duration: 2000
  1558. });
  1559. setTimeout(() => {
  1560. this.targetDialogVisible = false;
  1561. //获取评估对象列表
  1562. this.getAETargetListByAssetsId();
  1563. }, 2000);
  1564. }
  1565. })
  1566. }
  1567. })
  1568. },
  1569. // 删除资产评估对象
  1570. assetsTargetDelete(id) {
  1571. this.$api.assets.assetsTargetDelete(id).then(res => {
  1572. if (res.code === 200) {
  1573. this.$notify({
  1574. title: '成功',
  1575. message: '删除资产业务评估对象成功!',
  1576. type: 'success',
  1577. duration: 2000
  1578. });
  1579. this.getAETargetListByAssetsId();
  1580. }
  1581. })
  1582. },
  1583. // 根据不同情况打开的评估对象表单可编辑状态不同
  1584. changeStatus(val) {
  1585. if (val == "edit") {
  1586. this.targetDisabledStatus = false;
  1587. this.updateButtonStatus = true;
  1588. this.saveButtonStatus = false;
  1589. } else if (val == "add") {
  1590. this.targetDisabledStatus = false;
  1591. this.saveButtonStatus = true;
  1592. this.updateButtonStatus = false;
  1593. } else if (val == "detail") {
  1594. this.targetDisabledStatus = true;
  1595. this.saveButtonStatus = false;
  1596. this.updateButtonStatus = false;
  1597. }
  1598. },
  1599. // 根据业务id获取资产业务款项信息
  1600. getOrderFundInvoiceById() {
  1601. this.$api.assets.getOrderFundInvoiceById(this.assetsForm.id).then(res => {
  1602. if (res.code === 200) {
  1603. if (res.data != null) {
  1604. this.invoiceData = res.data;
  1605. this.invoiceData.leftAmount = this.invoiceData.shouldAmount - this.invoiceData.realAmount;
  1606. }
  1607. }
  1608. })
  1609. },
  1610. // 提交节点
  1611. commit(state) {
  1612. this.$refs.board.commit(state);
  1613. },
  1614. getPreviousNode(pNode) {
  1615. this.pNode = pNode;
  1616. }
  1617. }
  1618. }
  1619. </script>
  1620. <style lang="scss" scoped>
  1621. .row-style {
  1622. margin-left: 40px;
  1623. margin-right: 1%;
  1624. }
  1625. .major-radio {
  1626. width: 92px
  1627. }
  1628. .task-class {
  1629. /deep/ .el-form-item__label {
  1630. color: red;
  1631. }
  1632. }
  1633. .evaluate-table {
  1634. margin-left: 40px;
  1635. margin-top: 35px;
  1636. }
  1637. .pane-class {
  1638. height: 800px;
  1639. width: 100%;
  1640. overflow-y: scroll;
  1641. }
  1642. /deep/ .cell-class {
  1643. font-size: 13px;
  1644. color: black;
  1645. }
  1646. .table {
  1647. /deep/ thead {
  1648. .el-table-column--selection {
  1649. .cell {
  1650. display: none;
  1651. }
  1652. }
  1653. }
  1654. }
  1655. /deep/.doWarehouseClass {
  1656. border-radius: 10px;
  1657. }
  1658. .button-area {
  1659. position: absolute;
  1660. top: 20px;
  1661. right: 50px;
  1662. }
  1663. .error-type {
  1664. margin-right: 5px;
  1665. }
  1666. .error-type:hover {
  1667. cursor: pointer;
  1668. }
  1669. .box-card {
  1670. margin-top: 40px
  1671. }
  1672. .time {
  1673. font-size: 13px;
  1674. color: #999;
  1675. float: right;
  1676. margin-top: 5px;
  1677. }
  1678. .bottom {
  1679. margin-top: 13px;
  1680. line-height: 12px;
  1681. }
  1682. .button {
  1683. float: left;
  1684. }
  1685. .image {
  1686. width: 100%;
  1687. padding: 0%;
  1688. display: block;
  1689. }
  1690. .control {
  1691. z-index: 999;
  1692. position: relative;
  1693. top: 10px;
  1694. }
  1695. </style>