inventoryReview.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. <template>
  2. <div class="inventoryReview">
  3. <ul class="detailUl">
  4. <li class="detailLi">
  5. <span class="liName">
  6. <span style="color: red;margin-right: 5rpx">*</span>
  7. 企业名称
  8. </span>
  9. <div class="inputBox">
  10. <input v-model="form.qymc" disabled class="myIpt">
  11. </div>
  12. </li>
  13. <li class="detailLi">
  14. <span class="liName">
  15. <span style="color: red;margin-right: 5rpx">*</span>
  16. 统一社会信用代码
  17. </span>
  18. <div class="inputBox">
  19. <input v-model="form.shxydm" disabled class="myIpt">
  20. </div>
  21. </li>
  22. <li class="detailLi">
  23. <span class="liName">
  24. 注册资金(万元)
  25. </span>
  26. <div class="inputBox">
  27. <input v-model="form.zczj" disabled class="myIpt">
  28. </div>
  29. </li>
  30. <li class="detailLi">
  31. <span class="liName">
  32. 币种
  33. </span>
  34. <div class="inputBox">
  35. <input placeholder="" v-model="form.currencyStr" disabled class="myIpt">
  36. <!-- <van-icon name="arrow" />-->
  37. </div>
  38. </li>
  39. <li class="detailLi">
  40. <span class="liName">
  41. 注册时间
  42. </span>
  43. <div class="inputBox">
  44. <input placeholder="" v-model="form.zcsj" disabled class="myIpt">
  45. <!-- <van-icon name="arrow" />-->
  46. </div>
  47. </li>
  48. <li class="detailLi">
  49. <span class="liName">
  50. 法定代表人
  51. </span>
  52. <input class="myIpt" value="256" disabled style="padding-right: 30rpx" v-model="form.fddbr">
  53. </li>
  54. <li class="detailLi">
  55. <span class="liName">
  56. 法人电话
  57. </span>
  58. <div class="inputBox">
  59. <input disabled class="myIpt" v-model="form.legalPersonPhone">
  60. </div>
  61. </li>
  62. <li class="detailLi">
  63. <span class="liName">
  64. 法人邮箱
  65. </span>
  66. <div class="inputBox">
  67. <input disabled class="myIpt" v-model="form.frEmail">
  68. </div>
  69. </li>
  70. <li class="detailLi">
  71. <span class="liName">
  72. <span style="color: red;margin-right: 5rpx">*</span>
  73. 企业联系人
  74. </span>
  75. <div class="inputBox">
  76. <input disabled class="myIpt" v-model="form.qylxr">
  77. </div>
  78. </li>
  79. <li class="detailLi">
  80. <span class="liName">
  81. <span style="color: red;margin-right: 5rpx">*</span>
  82. 联系人手机
  83. </span>
  84. <div class="inputBox">
  85. <input disabled class="myIpt" v-model="form.lxdh">
  86. </div>
  87. </li>
  88. <li class="detailLi">
  89. <span class="liName">
  90. <span style="color: red;margin-right: 5rpx">*</span>
  91. 联系人邮箱
  92. </span>
  93. <div class="inputBox">
  94. <input disabled class="myIpt" v-model="form.email">
  95. </div>
  96. </li>
  97. <li class="detailLi">
  98. <span class="liName">
  99. <span style="color: red;margin-right: 5rpx">*</span>
  100. 财务负责人
  101. </span>
  102. <div class="inputBox">
  103. <input disabled class="myIpt" v-model="form.cwfzr">
  104. </div>
  105. </li>
  106. <li class="detailLi">
  107. <span class="liName">
  108. <span style="color: red;margin-right: 5rpx">*</span>
  109. 负责人电话
  110. </span>
  111. <div class="inputBox">
  112. <input disabled class="myIpt" v-model="form.cwfzrdh">
  113. </div>
  114. </li>
  115. <li class="detailLi">
  116. <span class="liName">
  117. 注册地址
  118. </span>
  119. <div class="moreLineBox">
  120. {{ form.zcdz }}
  121. </div>
  122. </li>
  123. <li class="detailLi">
  124. <span class="liName">
  125. 经营地址
  126. </span>
  127. <div class="moreLineBox">
  128. {{ form.jydz }}
  129. </div>
  130. </li>
  131. <li class="detailLi2" >
  132. <div class="titleBox" >
  133. <span class="liName">经营范围</span>
  134. </div>
  135. <van-field
  136. :value="form.jyfw"
  137. autosize
  138. type="textarea"
  139. class="myField"
  140. readonly
  141. />
  142. </li>
  143. <li class="detailLi2" >
  144. <div class="titleBox" style="margin-bottom: 24rpx">
  145. <span class="liName">
  146. <span style="color: red;margin-right: 5rpx">*</span>
  147. 营业执照
  148. </span>
  149. </div>
  150. <van-uploader
  151. :max-count="9"
  152. @delete="deleteRYXXZP"
  153. @after-read="uploadRYXXZP"
  154. :show-upload="true"
  155. :file-list="fileList"
  156. />
  157. </li>
  158. <li class="detailLi2" >
  159. <div class="titleBox" >
  160. <span class="liName">荣誉信息</span>
  161. </div>
  162. <van-field
  163. autosize
  164. type="textarea"
  165. class="myField"
  166. style="margin-bottom: 24rpx"
  167. readonly
  168. />
  169. <van-uploader
  170. :max-count="6"
  171. @delete="deleteRYXXZP1"
  172. :file-list="fileList1"
  173. @after-read="uploadRYXXZP1"
  174. :show-upload="true"
  175. />
  176. <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传6张)</span>
  177. </li>
  178. <li class="detailLi2" >
  179. <div class="titleBox" style="margin-bottom: 24rpx">
  180. <span class="liName">
  181. 法人身份证
  182. <span style="color: #B3B3B3;font-size: 28rpx">(只能上传jpg/png格式,限制上传6张)</span>
  183. </span>
  184. </div>
  185. <van-uploader
  186. :max-count="6"
  187. @delete="deleteRYXXZP2"
  188. :file-list="fileList2"
  189. @after-read="uploadRYXXZP2"
  190. :show-upload="true"
  191. />
  192. </li>
  193. <li class="detailLi2" style="position:relative;">
  194. <div class="titleBox" >
  195. <span class="liName">主营业务</span>
  196. </div>
  197. <van-field
  198. :value="form.business"
  199. autosize
  200. type="textarea"
  201. class="myField"
  202. readonly
  203. />
  204. </li>
  205. <li class="detailLi">
  206. <span class="liName">
  207. 全年研发投入(万元)
  208. </span>
  209. <div class="moreLineBox">
  210. {{ form.rdInvestment || ''}}
  211. </div>
  212. </li>
  213. <li class="detailLi">
  214. <span class="liName">
  215. 全年技改投入(万元)
  216. </span>
  217. <div class="moreLineBox">
  218. {{ form.jgInvestment || '' }}
  219. </div>
  220. </li>
  221. <li class="detailLi">
  222. <span class="liName">
  223. 发明专利(件)
  224. </span>
  225. <div class="moreLineBox">
  226. {{ form.inventionPatent || '' }}
  227. </div>
  228. </li>
  229. <li class="detailLi">
  230. <span class="liName">
  231. 软件著作(件)
  232. </span>
  233. <div class="moreLineBox">
  234. {{ form.softwareWorks || '' }}
  235. </div>
  236. </li>
  237. <li class="detailLi">
  238. <span class="liName">
  239. 实用新型专利(件)
  240. </span>
  241. <div class="moreLineBox">
  242. {{ form.utilityModel || '' }}
  243. </div>
  244. </li>
  245. <li class="detailLi">
  246. <span class="liName">
  247. 集成电路布图设计专有权(件)
  248. </span>
  249. <div class="moreLineBox">
  250. {{ form.integratedCircuit || '' }}
  251. </div>
  252. </li>
  253. <li class="detailLi">
  254. <span class="liName">
  255. 四技合同金额-开发(万元)
  256. </span>
  257. <div class="moreLineBox">
  258. {{ form.fourOpennessAmount || '' }}
  259. </div>
  260. </li>
  261. <li class="detailLi">
  262. <span class="liName">
  263. 四技合同金额-转让(万元)
  264. </span>
  265. <div class="moreLineBox">
  266. {{ form.fourTransferenceAmount || '' }}
  267. </div>
  268. </li>
  269. <li class="detailLi">
  270. <span class="liName">
  271. 四技合同金额-服务(万元)
  272. </span>
  273. <div class="moreLineBox">
  274. {{ form.fourServiceAmount || '' }}
  275. </div>
  276. </li>
  277. <li class="detailLi" style="border-bottom: none">
  278. <span class="liName">
  279. 四技合同金额-咨询(万元)
  280. </span>
  281. <div class="moreLineBox">
  282. {{ form.fourConsultAmount || '' }}
  283. </div>
  284. </li>
  285. </ul>
  286. <ul class="detailUl">
  287. <li class="detailLi2">
  288. <span class="liName">
  289. <span style="color: red;margin-right: 5rpx">*</span>
  290. 入驻类型
  291. </span>
  292. <van-radio-group :value="settleInType" @change="onChange">
  293. <van-radio
  294. :name="item.value"
  295. checked-color="#976CEB"
  296. v-for="item in settleInTypeList"
  297. :key="item.value"
  298. >{{ item.label }}</van-radio
  299. >
  300. </van-radio-group>
  301. </li>
  302. <li class="detailLi">
  303. <span class="liName">
  304. 招商经理
  305. </span>
  306. <div class="inputBox">
  307. <input placeholder="" v-model="form.investmentManagerName" disabled class="myIpt">
  308. <!-- <van-icon name="arrow" />-->
  309. </div>
  310. </li>
  311. <li class="detailLi">
  312. <span class="liName">
  313. 关联企业
  314. </span>
  315. <div class="inputBox" style="border-bottom: none">
  316. <input placeholder="" v-model="form.associationCompanyName" disabled class="myIpt">
  317. <!-- <van-icon name="arrow" />-->
  318. </div>
  319. </li>
  320. </ul>
  321. <ul class="detailUl">
  322. <li class="detailTitle">审核结果</li>
  323. <li class="detailLi">
  324. <span class="liName">
  325. <span style="color: red;margin-right: 5rpx">*</span>
  326. 处理结果
  327. </span>
  328. <van-radio-group :value="radio2" @change="onChange2">
  329. <van-radio name="1">通过</van-radio>
  330. <van-radio name="2">不通过</van-radio>
  331. </van-radio-group>
  332. </li>
  333. <li class="detailLi2" style="position:relative;border-bottom: none">
  334. <div class="titleBox" >
  335. <span class="liName">处理意见</span>
  336. </div>
  337. <van-field
  338. @change="onChange3"
  339. :value="form.handleOpinions"
  340. autosize
  341. type="textarea"
  342. class="myField"
  343. />
  344. </li>
  345. </ul>
  346. <div class="buttonBox">
  347. <button class="btn zcBtn" @click="cancel">取消</button>
  348. <button class="btn tjBtn" @click="confirmSubmit()">提交审核</button>
  349. </div>
  350. </div>
  351. </template>
  352. <script>
  353. import { getUserLocalStorageInfo,getByCodes,companyExamineGetById,companyExamineExamine } from "@/js_sdk/http";
  354. export default {
  355. name: "inventoryReview",
  356. onLoad(options){
  357. console.log('options:',options)
  358. this.id = options.id
  359. this.proveType = options.proveType
  360. this.getById()
  361. this.getByCodes()
  362. },
  363. data(){
  364. return{
  365. dc_key: ['MNP_BUILDING_TYPE', 'CURRENCY'],
  366. form:{
  367. },
  368. radio: '',
  369. radio2: '',
  370. id: '',
  371. proveType: '',
  372. fileList: [],
  373. fileList1: [],
  374. fileList2: [],
  375. settleInType:'',
  376. settleInTypeList: [],
  377. dic_SelectList: []
  378. }
  379. },
  380. methods:{
  381. getById(){
  382. const data = {
  383. id: this.id
  384. }
  385. companyExamineGetById(data).then(res=>{
  386. if(res){
  387. this.form = res
  388. this.form.currencyStr = this.form.currency == null ? ' ' : this.getDicType("bizhong", this.form.currency)
  389. this.settleInType = res.settleInType
  390. if (res.yyzzfbzp) {
  391. res.yyzzfbzp.split(',').forEach(id=>{
  392. this.fileList.push({
  393. imgUrl: "/FileController/download/" + id,
  394. id: id,
  395. url:
  396. this.$constant.BASE_URI +
  397. "/FileController/download/" +
  398. id,
  399. isImage: true,
  400. });
  401. })
  402. }
  403. if (res.ryxxzp) {
  404. res.ryxxzp.split(',').forEach(id=>{
  405. this.fileList1.push({
  406. imgUrl: "/FileController/download/" + id,
  407. id: id,
  408. url:
  409. this.$constant.BASE_URI +
  410. "/FileController/download/" +
  411. id,
  412. isImage: true,
  413. });
  414. })
  415. }
  416. if (res.frsfzh) {
  417. res.frsfzh.split(',').forEach(id=>{
  418. this.fileList2.push({
  419. imgUrl: "/FileController/download/" + id,
  420. id: id,
  421. url:
  422. this.$constant.BASE_URI +
  423. "/FileController/download/" +
  424. id,
  425. isImage: true,
  426. });
  427. })
  428. }
  429. }
  430. })
  431. },
  432. async getByCodes() {
  433. let data = await getByCodes(JSON.stringify(this.dc_key));
  434. this.dic_SelectList = this.$common.handleDicList(data);
  435. this.dic_SelectList.MNP_BUILDING_TYPE.forEach(item=>{
  436. this.settleInTypeList.push(item)
  437. })
  438. },
  439. getDicType(type, value) {
  440. if (type == "bizhong" && this.dic_SelectList.CURRENCY) {
  441. let CURRENCY = this.dic_SelectList.CURRENCY;
  442. let index = CURRENCY.findIndex((e) => e.value == value);
  443. return CURRENCY[index].label;
  444. }
  445. },
  446. onChange(event) {
  447. this.form.settleInType = event.detail
  448. },
  449. onChange2(event) {
  450. console.log(event)
  451. this.form.state = event.detail
  452. },
  453. onChange3(event) {
  454. console.log(event)
  455. this.form.handleOpinions = event.detail
  456. },
  457. deleteRYXXZP(event) {
  458. this.fileList.splice(event.detail.index, 1);
  459. this.$forceUpdate();
  460. },
  461. uploadRYXXZP(event) {
  462. console.log(event)
  463. let that = this;
  464. const { file } = event.detail;
  465. uni.uploadFile({
  466. url: that.$constant.BASE_URI + "/wx/fileController/upload",
  467. filePath: file.url,
  468. name: "file",
  469. formData: { user: "test" },
  470. success(res) {
  471. // 上传完成需要更新 fileList
  472. let data = JSON.parse(res.data);
  473. that.fileList.push({
  474. id: data.data[0],
  475. });
  476. },
  477. fail(res) {},
  478. });
  479. },
  480. deleteRYXXZP1(event) {
  481. this.fileList1.splice(event.detail.index, 1);
  482. this.$forceUpdate();
  483. },
  484. uploadRYXXZP1(event) {
  485. console.log(event)
  486. let that = this;
  487. const { file } = event.detail;
  488. uni.uploadFile({
  489. url: that.$constant.BASE_URI + "/wx/fileController/upload",
  490. filePath: file.url,
  491. name: "file",
  492. formData: { user: "test" },
  493. success(res) {
  494. // 上传完成需要更新 fileList
  495. let data = JSON.parse(res.data);
  496. that.fileList1.push({
  497. id: data.data[0],
  498. });
  499. },
  500. fail(res) {},
  501. });
  502. },
  503. deleteRYXXZP2(event) {
  504. this.fileList2.splice(event.detail.index, 1);
  505. this.$forceUpdate();
  506. },
  507. uploadRYXXZP2(event) {
  508. console.log(event)
  509. let that = this;
  510. const { file } = event.detail;
  511. uni.uploadFile({
  512. url: that.$constant.BASE_URI + "/wx/fileController/upload",
  513. filePath: file.url,
  514. name: "file",
  515. formData: { user: "test" },
  516. success(res) {
  517. // 上传完成需要更新 fileList
  518. let data = JSON.parse(res.data);
  519. that.fileList2.push({
  520. id: data.data[0],
  521. });
  522. },
  523. fail(res) {},
  524. });
  525. },
  526. cancel(){
  527. uni.navigateBack({})
  528. },
  529. confirmSubmit(){
  530. const _this = this
  531. // 通过才校验
  532. if(_this.form.state == '1'){
  533. if (!_this.form.qymc){
  534. this.$showToast('请输入企业名称')
  535. return
  536. }
  537. if (!_this.form.shxydm){
  538. this.$showToast('请输入统一社会信用代码')
  539. return
  540. }
  541. if (!_this.form.qylxr){
  542. this.$showToast('请输入企业联系人')
  543. return
  544. }
  545. if (!_this.form.lxdh){
  546. this.$showToast('请输入联系人手机')
  547. return
  548. }
  549. if (!_this.form.email){
  550. this.$showToast('请输入联系人邮箱')
  551. return
  552. }
  553. if (!_this.form.cwfzr){
  554. this.$showToast('请输入财务负责人')
  555. return
  556. }
  557. if (!_this.form.cwfzrdh){
  558. this.$showToast('请输入财务负责人电话')
  559. return
  560. }
  561. if (!_this.form.yyzzfbzp){
  562. this.$showToast('请上传营业执照')
  563. return
  564. }
  565. if (!_this.form.settleInType){
  566. this.$showToast('请选择入驻类型')
  567. return
  568. }
  569. if (!_this.form.state){
  570. this.$showToast('请选择处理结果')
  571. return
  572. }
  573. }
  574. if (this.fileList.length > 0){
  575. let yyzzfbzp = []
  576. this.fileList.forEach(e=>{
  577. yyzzfbzp.push(e.id)
  578. })
  579. this.form.yyzzfbzp = yyzzfbzp.toString()
  580. }
  581. if (this.fileList1.length > 0){
  582. let ryxxzp = []
  583. this.fileList1.forEach(e=>{
  584. ryxxzp.push(e.id)
  585. })
  586. this.form.ryxxzp = ryxxzp.toString()
  587. }
  588. if (this.fileList2.length > 0){
  589. let qylbbq = []
  590. this.fileList2.forEach(e=>{
  591. qylbbq.push(e.id)
  592. })
  593. this.form.qylbbq = qylbbq.toString()
  594. }
  595. const data = {
  596. id: _this.id,
  597. state: _this.form.state,
  598. proveType: _this.proveType,
  599. handleOpinions: _this.form.handleOpinions,
  600. examineUserId: getUserLocalStorageInfo().userId,
  601. }
  602. companyExamineExamine(data).then(res=>{
  603. if(res.code == '200'){
  604. this.$showToast("审核成功");
  605. this.cancel()
  606. }else {
  607. this.$showToast(res.msg);
  608. }
  609. })
  610. }
  611. }
  612. }
  613. </script>
  614. <style lang="scss">
  615. .inventoryReview{
  616. .detailUl{
  617. margin-top: 20rpx;
  618. background: white;
  619. padding: 24rpx 32rpx;
  620. .liName{
  621. font-size: 32rpx;
  622. color: rgba(51, 51, 51, 1);
  623. white-space: nowrap;
  624. .callNumber{
  625. color: rgba(24, 23, 42, 1);
  626. font-size: 36rpx;
  627. font-weight: 600;
  628. }
  629. .callName{
  630. color: rgba(102, 102, 102, 1);
  631. font-size: 28rpx;
  632. }
  633. }
  634. .phoneIcon{
  635. width: 64rpx;
  636. height: 64rpx;
  637. }
  638. .detailLi{
  639. display: flex;
  640. justify-content: space-between;
  641. align-items: center;
  642. padding: 32rpx 0;
  643. border-bottom: 2rpx solid #E6E6E6;
  644. .liInfo{
  645. display: inline-block;
  646. text-align: right;
  647. max-width: 428rpx;
  648. color: rgba(102, 102, 102, 1);
  649. font-size: 32rpx;
  650. line-height: 38rpx;
  651. overflow: hidden;
  652. word-wrap: break-word;
  653. }
  654. .inputBox{
  655. display: flex;
  656. align-items: center;
  657. }
  658. .moreLineBox{
  659. word-wrap: break-word;
  660. max-width: 422rpx;
  661. color: rgba(102, 102, 102, 1);
  662. }
  663. .myIpt{
  664. text-align: right;
  665. margin-right: 20rpx;
  666. color: rgba(102, 102, 102, 1);
  667. min-width: 422rpx;
  668. }
  669. }
  670. .detailLi2{
  671. display: flex;
  672. flex-direction: column;
  673. padding: 32rpx 0;
  674. border-bottom: 2rpx solid #E6E6E6;
  675. .detailLi2BoxTop{
  676. display: flex;
  677. flex-wrap: wrap;
  678. justify-content: space-between;
  679. margin: 12rpx 0;
  680. .checkItem{
  681. width: 128rpx;
  682. height: 64rpx;
  683. font-size: 28rpx;
  684. color: #666666;
  685. display: flex;
  686. align-items: center;
  687. justify-content: center;
  688. background: #F5F7FA;
  689. border-radius: 8rpx;
  690. margin: 12rpx 0;
  691. }
  692. .checked{
  693. background: #0365F9;
  694. color: white;
  695. }
  696. }
  697. .locationBox{
  698. position: absolute;
  699. right: 24rpx;
  700. top: 100rpx;
  701. }
  702. .van-cell {
  703. background: #F5F7FA !important;
  704. border-radius: 8rpx;
  705. font-size: 28rpx;
  706. margin-top: 16rpx;
  707. }
  708. .van-radio-group{
  709. display: flex;
  710. flex-wrap: wrap;
  711. margin-top: 24rpx;
  712. gap: 24rpx;
  713. color: rgba(102, 102, 102, 1);
  714. font-size: 4vw;
  715. }
  716. }
  717. }
  718. .buttonBox{
  719. display: flex;
  720. justify-content: center;
  721. .btn{
  722. width: 240rpx;
  723. height: 80rpx;
  724. display: flex;
  725. border-radius: 8rpx;
  726. align-items: center;
  727. justify-content: center;
  728. margin: 48rpx 16rpx 150rpx 16rpx;
  729. color: white;
  730. letter-spacing: 2rpx;
  731. text-indent: 2rpx;
  732. &::after{
  733. border: none;
  734. }
  735. }
  736. .zcBtn{
  737. background: rgba(0, 0, 0, 0.05);
  738. color: rgba(3, 101, 249, 1);
  739. }
  740. .tjBtn{
  741. background: #0365F9;
  742. }
  743. }
  744. }
  745. </style>