SignContract.vue 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188
  1. <template>
  2. <div class="sign_box">
  3. <el-form label-position="right" ref="form" :rules="rules" :model="form" label-width="80px">
  4. <el-row :gutter="10" class="mb8 roiyy">
  5. <el-col :span="1.5" v-if="setrd % 2 == 1">
  6. <el-button type="primary" v-hasPermi="['system:config:add']" @click="upBtn">提交</el-button>
  7. </el-col>
  8. <el-col :span="1.5" v-if="setrd % 2 == 1">
  9. <el-button type="primary" v-hasPermi="['system:config:edit']" @click="submitForm">暂存</el-button>
  10. </el-col>
  11. <el-col :span="1.5">
  12. <el-button type="primary" v-hasPermi="['system:config:edit']" @click="goBtn">取消</el-button>
  13. </el-col>
  14. <el-col :span="1.5" :offset="18" v-if="setrd % 2 == 0">
  15. <el-button type="danger" @click="applyBtn" v-hasPermi="['bmProject:project:pass']">审核</el-button>
  16. <el-button type="danger" @click="backBtn" v-hasPermi="['bmProject:project:reject']">驳回</el-button>
  17. </el-col>
  18. <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
  19. </el-row>
  20. <div class="sign_tit">项目签约信息</div>
  21. <el-row>
  22. <el-form-item label-width="120px" label="签约日期:" class="elItem" prop="orderDate">
  23. <el-col :span="6">
  24. <el-date-picker value-format="yyyy-MM-dd" type="date" placeholder="请选择签约日期" v-model="form.orderDate" style="width: 100%"></el-date-picker>
  25. </el-col>
  26. </el-form-item>
  27. </el-row>
  28. <el-row>
  29. <el-col :span="6">
  30. <el-form-item label-width="120px" label="投资方式:" class="elItem" prop="investmentType">
  31. <el-col :span="24">
  32. <el-radio-group v-model="form.investmentType" style="width: 100%">
  33. <el-col :span="12">
  34. <el-radio label="1">独资</el-radio>
  35. </el-col>
  36. <el-col :span="12">
  37. <el-radio label="2">合资</el-radio>
  38. </el-col>
  39. </el-radio-group>
  40. </el-col>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="6">
  44. <el-form-item label="是否外资:" class="elItem" prop="isOutInvestment">
  45. <el-col :span="6">
  46. <el-checkbox-group v-model="form.isOutInvestment">
  47. <el-checkbox :label="1" name="type">外资</el-checkbox>
  48. </el-checkbox-group>
  49. </el-col>
  50. </el-form-item>
  51. </el-col>
  52. </el-row>
  53. <el-row>
  54. <el-col :span="7">
  55. <el-form-item label-width="120px" label="总投资额度:" class="elItem" prop="totInvestment">
  56. <el-col :span="18">
  57. <el-input type="number" placeholder="请输入总投资额度" v-model="form.totInvestment"></el-input>
  58. </el-col>
  59. <div class="dw_name">万元</div>
  60. </el-form-item>
  61. </el-col>
  62. </el-row>
  63. <el-row>
  64. <el-col :span="1">
  65. <div class="qz_name">其中</div>
  66. </el-col>
  67. <el-col :span="10">
  68. <el-form-item label-width="182px" label="境外投资(含港澳台投资):" class="elItem" prop="overseasInvestment">
  69. <el-col :span="18">
  70. <el-input type="number" placeholder="请输入总投资额度" v-model="form.overseasInvestment"></el-input>
  71. </el-col>
  72. <div class="dw_name">万元</div>
  73. </el-form-item>
  74. <el-form-item label-width="182px" label="境内省外投资:" class="elItem" prop="jnswInvestm">
  75. <el-col :span="18">
  76. <el-input type="number" placeholder="请输入境内省外投资额度" v-model="form.jnswInvestm"></el-input>
  77. </el-col>
  78. <div class="dw_name">万元</div>
  79. </el-form-item>
  80. <el-form-item label-width="182px" label="省内市外投资:" class="elItem" prop="snswInvestm">
  81. <el-col :span="18">
  82. <el-input type="number" placeholder="请输入省内市外投资额度" v-model="form.snswInvestm"></el-input>
  83. </el-col>
  84. <div class="dw_name">万元</div>
  85. </el-form-item>
  86. <el-form-item label-width="182px" label="市内县外投资:" class="elItem" prop="snxwInvestm">
  87. <el-col :span="18">
  88. <el-input type="number" placeholder="请输入市内县外投资额度" v-model="form.snxwInvestm"></el-input>
  89. </el-col>
  90. <div class="dw_name">万元</div>
  91. </el-form-item>
  92. <el-form-item label-width="182px" label="县内投资:" class="elItem" prop="xnInvestm">
  93. <el-col :span="18">
  94. <el-input type="number" placeholder="请输入县内投资额度" v-model="form.xnInvestm"></el-input>
  95. </el-col>
  96. <div class="dw_name">万元</div>
  97. </el-form-item>
  98. </el-col>
  99. </el-row>
  100. <el-row>
  101. <el-col :span="5">
  102. <el-form-item label-width="121px" label="是否独立供地:" class="elItem" prop="isIndependentLan">
  103. <el-select v-model="form.isIndependentLan" placeholder="请选择">
  104. <el-option label="是" value="Y"></el-option>
  105. <el-option label="否" value="N"></el-option>
  106. </el-select>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="6">
  110. <el-form-item label-width="93px" label="供地面积:" class="elItem" prop="landArea">
  111. <el-col :span="20">
  112. <el-input placeholder="请输入供地面积" v-model="form.landArea"></el-input>
  113. </el-col>
  114. <div class="dw_name">亩</div>
  115. </el-form-item>
  116. </el-col>
  117. <el-col :span="9">
  118. <el-form-item label-width="93px" label="供地位置:" class="elItem" prop="landAddress">
  119. <el-input placeholder="请输入供地位置" v-model="form.landAddress"></el-input>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :span="4">
  123. <el-form-item label-width="82px" label="土地证:" class="elItem" prop="landPhoto">
  124. <el-upload class="upload-demo" list-type="picture" :limit="1" :file-list="fileListTdz" :on-success="upl_fn" :action="defaultSettings.urls + '/prod-api/common/upload'">
  125. <el-button size="small" type="primary">点击上传</el-button>
  126. </el-upload>
  127. </el-form-item>
  128. </el-col>
  129. </el-row>
  130. <el-row>
  131. <el-col :span="6">
  132. <el-form-item label-width="121px" label="流转土地面积:" class="elItem" prop="circulationLand">
  133. <el-col :span="18">
  134. <el-input placeholder="请输入" v-model="form.circulationLand"></el-input>
  135. </el-col>
  136. <div class="dw_name">亩</div>
  137. </el-form-item>
  138. </el-col>
  139. <el-col :span="10">
  140. <el-form-item label-width="111px" label="流转土地位置:" class="elItem" prop="circulationAddres">
  141. <el-input placeholder="请输入流转土地位置" v-model="form.circulationAddres"></el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="4">
  145. <el-form-item label-width="119px" label="土地流转合同:" class="elItem" prop="circulationDoc">
  146. <el-upload class="upload-demo" :file-list="fileListTdls" :limit="1" :on-success="upl_fn_lzht" :action="defaultSettings.urls + '/prod-api/common/upload'">
  147. <el-button size="small" type="primary">点击上传</el-button>
  148. </el-upload>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="4">
  152. <el-form-item label-width="94px" label="产权证:" class="elItem" prop="circulationPhoto">
  153. <el-upload class="upload-demo" :limit="1" :file-list="fileListCqz" :on-success="upl_fn_cqz" :action="defaultSettings.urls + '/prod-api/common/upload'">
  154. <el-button size="small" type="primary">点击上传</el-button>
  155. </el-upload>
  156. </el-form-item>
  157. </el-col>
  158. </el-row>
  159. <el-row>
  160. <el-col :span="7">
  161. <el-form-item label-width="121px" label="租赁厂房面积:" class="elItem" prop="leasePlantArea">
  162. <el-col :span="16">
  163. <el-input placeholder="请输入" v-model="form.leasePlantArea"></el-input>
  164. </el-col>
  165. <div class="dw_name">平方米</div>
  166. </el-form-item>
  167. </el-col>
  168. <el-col :span="10">
  169. <el-form-item label-width="111px" label="租赁厂房位置:" class="elItem" prop="leasePlantAddress">
  170. <el-input placeholder="请输入租赁厂房位置" v-model="form.leasePlantAddress"></el-input>
  171. </el-form-item>
  172. </el-col>
  173. <el-col :span="3">
  174. <el-form-item label-width="94px" label="租赁合同:" class="elItem" prop="leasePlantDoc">
  175. <el-upload class="upload-demo" :limit="1" :file-list="fileListZht" :on-success="upl_fn_zlht" :action="defaultSettings.urls + '/prod-api/common/upload'">
  176. <el-button size="small" type="primary">点击上传</el-button>
  177. </el-upload>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="4">
  181. <el-form-item label-width="94px" label="产权证:" class="elItem" prop="leasePlantPhoto">
  182. <el-upload class="upload-demo" :limit="1" :file-list="fileListZcq" :on-success="upl_fn_zlcqz" :action="defaultSettings.urls + '/prod-api/common/upload'">
  183. <el-button size="small" type="primary">点击上传</el-button>
  184. </el-upload>
  185. </el-form-item>
  186. </el-col>
  187. </el-row>
  188. <el-row>
  189. <el-col :span="8">
  190. <el-form-item label-width="121px" label="合同约定产值:" class="elItem" prop="agreementTot">
  191. <el-col :span="18">
  192. <el-input placeholder="请输入" v-model="form.agreementTot"></el-input>
  193. </el-col>
  194. <div class="dw_name">万元</div>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="8">
  198. <el-form-item label-width="121px" label="合同约定税收:" class="elItem" prop="agreementTax">
  199. <el-col :span="18">
  200. <el-input placeholder="请输入" v-model="form.agreementTax"></el-input>
  201. </el-col>
  202. <div class="dw_name">万元</div>
  203. </el-form-item>
  204. </el-col>
  205. </el-row>
  206. <el-row style="margin-left: -10px">
  207. <el-col :span="8">
  208. <el-form-item label-width="141px" label="合同约定开工时间:" class="elItem" prop="agreementStartdate">
  209. <el-col :span="18">
  210. <el-date-picker value-format="yyyy-MM-dd" type="date" placeholder="请选择开工时间" v-model="form.agreementStartdate"
  211. style="width: 100%"></el-date-picker>
  212. </el-col>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="8">
  216. <el-form-item label-width="141px" label="合同约定竣工时间:" class="elItem" prop="agreementEnddate">
  217. <el-col :span="18">
  218. <el-date-picker value-format="yyyy-MM-dd" type="date" placeholder="请选择竣工时间" v-model="form.agreementEnddate"
  219. style="width: 100%"></el-date-picker>
  220. </el-col>
  221. </el-form-item>
  222. </el-col>
  223. </el-row>
  224. <el-row>
  225. <el-form-item label-width="121px" label="合同签约方:" class="elItem" prop="je">
  226. </el-form-item>
  227. </el-row>
  228. <el-row>
  229. <el-col :span="6">
  230. <el-form-item label-width="121px" label="对方:" class="elItem" prop="agreementPartner">
  231. <el-input placeholder="请输入对方" v-model="form.agreementPartner"></el-input>
  232. </el-form-item>
  233. </el-col>
  234. <el-col :span="6">
  235. <el-form-item label-width="121px" label="签约人:" class="elItem" prop="partner">
  236. <el-input placeholder="请输入签约人" v-model="form.partner"></el-input>
  237. </el-form-item>
  238. </el-col>
  239. </el-row>
  240. <el-row>
  241. <el-col :span="6">
  242. <el-form-item label-width="121px" label="我方:" class="elItem" prop="agreementUs">
  243. <el-input placeholder="请输入我方" v-model="form.agreementUs"></el-input>
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="6">
  247. <el-form-item label-width="121px" label="签约人:" class="elItem" prop="signUs">
  248. <el-input placeholder="请输入签约人" v-model="form.signUs"></el-input>
  249. </el-form-item>
  250. </el-col>
  251. </el-row>
  252. <el-row>
  253. <el-col :span="6">
  254. <el-form-item label-width="121px" label="第三方:" class="elItem" prop="agreementThird">
  255. <el-input placeholder="请输入第三方" v-model="form.agreementThird"></el-input>
  256. </el-form-item>
  257. </el-col>
  258. <el-col :span="6">
  259. <el-form-item label-width="121px" label="签约人:" class="elItem" prop="third">
  260. <el-input placeholder="请输入签约人" v-model="form.third"></el-input>
  261. </el-form-item>
  262. </el-col>
  263. </el-row>
  264. <el-row>
  265. <el-col :span="18">
  266. <el-form-item label-width="121px" label="合同文本:" class="elItem" prop="agreementUrl">
  267. <el-upload class="upload-demo" ref="upload" :file-list="flieListHt" :action="defaultSettings.urls + '/prod-api/common/upload'" :on-preview="handlePreview"
  268. :on-success="up_loat_htwb" :on-remove="handleRemove" :auto-upload="false">
  269. <el-button slot="trigger" size="small" type="primary">选择图片</el-button>
  270. <el-button style="margin-left: 10px" size="small" type="success" @click="submitUpload">开始上传</el-button>
  271. <div slot="tip" class="el-upload__tip">
  272. 只能上传jpg/png文件,且不超过500kb
  273. </div>
  274. </el-upload>
  275. </el-form-item>
  276. </el-col>
  277. </el-row>
  278. <div class="sign_tit">企业注册信息</div>
  279. <el-row>
  280. <el-col :span="6">
  281. <el-form-item label-width="141px" label="在潜注册公司名称:" class="elItem" prop="name">
  282. <el-input placeholder="请输入在潜注册公司名称" v-model="form.name"></el-input>
  283. </el-form-item>
  284. </el-col>
  285. <el-col :span="6">
  286. <el-form-item label-width="109px" label="法定代表人:" class="elItem" prop="legalRep">
  287. <el-input placeholder="请输入法定代表人" v-model="form.legalRep"></el-input>
  288. </el-form-item>
  289. </el-col>
  290. </el-row>
  291. <el-row>
  292. <el-col :span="6">
  293. <el-form-item label-width="141px" label="注册资本金:" class="elItem" prop="totMoney">
  294. <el-input placeholder="请输入注册资本金" v-model="form.totMoney"></el-input>
  295. </el-form-item>
  296. </el-col>
  297. <el-col :span="8">
  298. <el-form-item label-width="109px" label="注册地址:" class="elItem" prop="address">
  299. <el-input placeholder="请输入注册地址" v-model="form.address"></el-input>
  300. </el-form-item>
  301. </el-col>
  302. </el-row>
  303. <el-row>
  304. <el-col :span="6">
  305. <el-form-item label-width="141px" label="统一社会信用代码:" class="elItem" prop="code">
  306. <el-input placeholder="请输入注册资本金" v-model="form.code"></el-input>
  307. </el-form-item>
  308. </el-col>
  309. <el-col :span="8">
  310. <el-form-item label-width="173px" label="营业执照复印件:" class="elItem" prop="bussinessUrl">
  311. <el-upload class="upload-demo" :limit="1" :file-list="flieListYzz" :on-success="upl_fn_zzfyj" :action="defaultSettings.urls + '/prod-api/common/upload'">
  312. <el-button size="small" type="primary">点击上传</el-button>
  313. </el-upload>
  314. </el-form-item>
  315. </el-col>
  316. </el-row>
  317. <div class="sign_tit">企业股东构成<span>*</span></div>
  318. <el-row>
  319. <div class="ads_box" @click="addshareBtn">
  320. <img src="../../assets/images/icon_add@2x.png" alt="" class="add_icon" />
  321. <span>添加企业股东构成</span>
  322. </div>
  323. </el-row>
  324. <el-row>
  325. <el-table v-loading="loading" class="elItem" :data="shareholderList">
  326. <!-- <el-table-column type="selection" width="55" align="center" /> -->
  327. <el-table-column label="姓名" align="center" prop="name" />
  328. <el-table-column label="股权比例" align="center" prop="equityRatio" :show-overflow-tooltip="true">
  329. <template slot-scope="scope">
  330. <span>{{ scope.row.equityRatio }}%</span>
  331. </template>
  332. </el-table-column>
  333. <el-table-column label="身份证号码" align="center" prop="idcard" :show-overflow-tooltip="true" />
  334. <el-table-column label="身份证(正面)" align="center" prop="idcardFront">
  335. <template slot-scope="scope">
  336. <img :src="scope.row.idcardFront" alt="" class="imgs" />
  337. </template>
  338. </el-table-column>
  339. <el-table-column label="身份证(反面)" align="center" prop="idcardBack">
  340. <template slot-scope="scope">
  341. <img :src="scope.row.idcardBack" alt="" class="imgs" />
  342. </template>
  343. </el-table-column>
  344. <!-- <el-table-column label="操作" align="center" prop="remark" :show-overflow-tooltip="true" /> -->
  345. <el-table-column label="操作" align="center">
  346. <!-- class-name="small-padding fixed-width" -->
  347. <template slot-scope="scope">
  348. <el-button size="mini" type="warning" @click="handleUpdate(scope.row)" v-hasPermi="['system:config:edit']">修改</el-button>
  349. <el-button size="mini" type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['system:config:remove']">删除</el-button>
  350. </template>
  351. </el-table-column>
  352. </el-table>
  353. <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  354. @pagination="getShareholderList" />
  355. </el-row>
  356. <div class="sign_tit">企业备案信息</div>
  357. <el-row>
  358. <el-col :span="6">
  359. <el-form-item label-width="121px" label="备案单位:" class="elItem" prop="recordName">
  360. <el-input placeholder="请输入备案单位" v-model="form.recordName"></el-input>
  361. </el-form-item>
  362. </el-col>
  363. <el-col :span="6">
  364. <el-form-item label-width="109px" label="备案文号:" class="elItem" prop="recordCode">
  365. <el-input placeholder="请输入备案文号" v-model="form.recordCode"></el-input>
  366. </el-form-item>
  367. </el-col>
  368. </el-row>
  369. <el-row>
  370. <el-col :span="6">
  371. <el-form-item label-width="121px" label="备案总投资额:" class="elItem" prop="recordTot">
  372. <el-col :span="18">
  373. <el-input placeholder="请输入备案总投资额" v-model="form.recordTot"></el-input>
  374. </el-col>
  375. <div class="dw_name">万元</div>
  376. </el-form-item>
  377. </el-col>
  378. <el-col :span="6">
  379. <el-form-item label-width="139px" label="备案建设周期:" class="elItem" prop="recordTime">
  380. <el-input placeholder="请输入备案建设周期" v-model="form.recordTime"></el-input>
  381. </el-form-item>
  382. </el-col>
  383. </el-row>
  384. <el-row>
  385. <el-col :span="18">
  386. <el-form-item label-width="121px" label="备案表:" class="elItem" prop="recordUrl">
  387. <el-upload class="upload-demo" ref="bAupload" :file-list="flieListBa" :action="defaultSettings.urls + '/prod-api/common/upload'" :on-preview="handlePreview"
  388. :on-success="up_loat_bab" :on-remove="handleRemove_bab" :auto-upload="false">
  389. <el-button slot="trigger" size="small" type="primary">选择图片</el-button>
  390. <el-button style="margin-left: 10px" size="small" type="success" @click="submitUpload_bab">开始上传</el-button>
  391. <div slot="tip" class="el-upload__tip">
  392. 只能上传jpg/png文件,且不超过500kb
  393. </div>
  394. </el-upload>
  395. </el-form-item>
  396. </el-col>
  397. </el-row>
  398. <div class="sign_tit">企业包保服务</div>
  399. <el-row>
  400. <el-col :span="8">
  401. <el-form-item label-width="122px" label="联系领导:" class="elItem" prop="contactLeader">
  402. <el-input placeholder="请输入联系领导" v-model="form.contactLeader"></el-input>
  403. </el-form-item>
  404. </el-col>
  405. <el-col :span="6">
  406. <el-form-item label-width="98px" label="联系方式:" class="elItem" prop="contactPhone">
  407. <el-input placeholder="请输入联系方式" v-model="form.contactPhone"></el-input>
  408. </el-form-item>
  409. </el-col>
  410. </el-row>
  411. <el-row>
  412. <el-col :span="8">
  413. <el-form-item label-width="122px" label="责任单位:" class="elItem" prop="contactCompany">
  414. <el-input placeholder="请输入责任单位" v-model="form.contactCompany"></el-input>
  415. </el-form-item>
  416. </el-col>
  417. <el-col :span="6">
  418. <el-form-item label-width="98px" label="责任人:" class="elItem" prop="contactPerson">
  419. <el-input placeholder="请输入责任人" v-model="form.contactPerson"></el-input>
  420. </el-form-item>
  421. </el-col>
  422. <el-col :span="6">
  423. <el-form-item label-width="98px" label="联系方式:" class="elItem" prop="contactPersonPhone">
  424. <el-input placeholder="请输入联系方式" v-model="form.contactPersonPhone"></el-input>
  425. </el-form-item>
  426. </el-col>
  427. </el-row>
  428. </el-form>
  429. <!-- 添加或修改岗位对话框 -->
  430. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="600px" append-to-body>
  431. <el-form ref="forms" :model="sharData" :rules="sharRules" label-width="120px">
  432. <el-form-item label="姓名" prop="name">
  433. <el-input v-model="sharData.name" placeholder="请输入姓名" />
  434. </el-form-item>
  435. <el-form-item label="股权比例" prop="equityRatio">
  436. <el-input-number :min="0" :max="100" style="width: 140px" v-model="sharData.equityRatio" /><span style="margin: 0 10px; font-size: 16px">%</span>
  437. </el-form-item>
  438. <el-form-item label="身份证号码" prop="idcard">
  439. <el-input v-model="sharData.idcard" placeholder="请输入身份证号码" />
  440. </el-form-item>
  441. <el-form-item label="身份证(正面)" prop="idcardFront">
  442. <el-upload class="upload-demo" :file-list="idcardFrontFlie" :on-remove="upl_remove_sfzzm" :on-success="upl_fn_sfzzm"
  443. :action="defaultSettings.urls + '/prod-api/common/upload'">
  444. <el-button size="small" type="primary">点击上传</el-button>
  445. </el-upload>
  446. </el-form-item>
  447. <el-form-item label="身份证(反面)" prop="idcardBack">
  448. <el-upload class="upload-demo" :file-list="idcardBackFlie" :on-remove="upl_remove_sfzfm" :on-success="upl_fn_sfzfm"
  449. :action="defaultSettings.urls + '/prod-api/common/upload'">
  450. <el-button size="small" type="primary">点击上传</el-button>
  451. </el-upload>
  452. </el-form-item>
  453. </el-form>
  454. <div slot="footer" class="dialog-footer">
  455. <el-button type="primary" @click="submitForms">确 定</el-button>
  456. <el-button @click="open = false">取 消</el-button>
  457. </div>
  458. </el-dialog>
  459. </div>
  460. </template>
  461. <script>
  462. import {
  463. getOrderinfo,
  464. getShareholderList,
  465. getShareholder,
  466. delShareholder,
  467. addShareholder,
  468. setShareholder,
  469. setOrderinfo,
  470. addOrderinfo,
  471. getExamine,
  472. } from "@/api/system/signContract";
  473. import {
  474. setExamine,
  475. setReject
  476. } from "@/api/projectInfo/info.js";
  477. const defaultSettings = require("@/settings.js");
  478. export default {
  479. data() {
  480. return {
  481. fileListZcq: [],
  482. fileListZht: [],
  483. fileListCqz: [],
  484. fileListTdls: [],
  485. fileListTdz: [],
  486. flieListHt: [],
  487. flieListYzz: [],
  488. flieListBa: [],
  489. defaultSettings,
  490. title: "",
  491. // 是否显示弹出层
  492. open: false,
  493. configList: [],
  494. setrd: 0,
  495. sharRules: {
  496. name: [{
  497. required: true,
  498. message: "请输入姓名",
  499. trigger: "blur",
  500. }, ],
  501. equityRatio: [{
  502. required: true,
  503. message: "请输入股权比例",
  504. trigger: "blur",
  505. }, ],
  506. idcard: [{
  507. required: true,
  508. message: "请输入身份证号",
  509. trigger: "blur",
  510. }, {
  511. pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  512. message: '身份证格式错误',
  513. trigger: 'blur'
  514. }],
  515. idcardFront: [{
  516. required: true,
  517. message: "请上传身份证正面",
  518. trigger: "blur",
  519. }],
  520. idcardBack: [{
  521. required: true,
  522. message: "请上传身份证反面",
  523. trigger: "blur",
  524. }, ],
  525. },
  526. sharData: {
  527. bmProjectId: this.$route.query.setid,
  528. name: "",
  529. equityRatio: 0,
  530. idcard: "",
  531. idcardFront: "",
  532. idcardBack: "",
  533. },
  534. queryParams: {
  535. pageNum: 1,
  536. pageSize: 10,
  537. bmProjectId: "",
  538. },
  539. total: 0,
  540. shareholderList: [],
  541. // showSearch: true,
  542. loading: true,
  543. rules: {
  544. orderDate: [{
  545. required: true,
  546. message: "请选择签约日期",
  547. trigger: "blur",
  548. }, ],
  549. investmentType: [{
  550. required: true,
  551. message: "请选择投资方式",
  552. trigger: "blur",
  553. }, ],
  554. totInvestment: [{
  555. required: true,
  556. message: "请输入总投资额度",
  557. trigger: "blur",
  558. }, ],
  559. overseasInvestment: [{
  560. required: true,
  561. message: "请输入境外投资",
  562. trigger: "blur",
  563. }, ],
  564. isIndependentLan: [{
  565. required: true,
  566. message: "请选择是否独立供地",
  567. trigger: "blur",
  568. }, ],
  569. agreementTot: [{
  570. required: true,
  571. message: "请输入合同约定产值",
  572. trigger: "blur",
  573. }, ],
  574. agreementTax: [{
  575. required: true,
  576. message: "请输入合同约定税收",
  577. trigger: "blur",
  578. }, ],
  579. agreementStartdate: [{
  580. required: true,
  581. message: "请选择合同约定开工时间",
  582. trigger: "blur",
  583. }, ],
  584. agreementEnddate: [{
  585. required: true,
  586. message: "请选择合同约定竣工时间",
  587. trigger: "blur",
  588. }, ],
  589. agreementPartner: [{
  590. required: true,
  591. message: "请输入合同签约对方",
  592. trigger: "blur",
  593. }, ],
  594. partner: [{
  595. required: true,
  596. message: "请输入对方合同签约人",
  597. trigger: "blur",
  598. }, ],
  599. agreementUs: [{
  600. required: true,
  601. message: "请输入合同签约我方",
  602. trigger: "blur",
  603. }, ],
  604. signUs: [{
  605. required: true,
  606. message: "请输入我方合同签约人",
  607. trigger: "blur",
  608. }, ],
  609. agreementUrl: [{
  610. required: true,
  611. message: "请上传合同文本",
  612. trigger: "blur",
  613. }, ],
  614. name: [{
  615. required: true,
  616. message: "请输入在潜注册公司名称",
  617. trigger: "blur",
  618. }, ],
  619. legalRep: [{
  620. required: true,
  621. message: "请输入法定代表人",
  622. trigger: "blur",
  623. }, ],
  624. totMoney: [{
  625. required: true,
  626. message: "请输入注册资本金",
  627. trigger: "blur",
  628. }, ],
  629. address: [{
  630. required: true,
  631. message: "请输入注册地址",
  632. trigger: "blur",
  633. }, ],
  634. code: [{
  635. required: true,
  636. message: "请输入统一社会信用代码",
  637. trigger: "blur",
  638. }, ],
  639. bussinessUrl: [{
  640. required: true,
  641. message: "请上传营业执照",
  642. trigger: "blur",
  643. }, ],
  644. recordName: [{
  645. required: true,
  646. message: "请输入备案单位",
  647. trigger: "blur",
  648. }, ],
  649. recordCode: [{
  650. required: true,
  651. message: "请输入备案文号",
  652. trigger: "blur",
  653. }, ],
  654. recordTot: [{
  655. required: true,
  656. message: "请输入备案总投资额",
  657. trigger: "blur",
  658. }, ],
  659. recordTime: [{
  660. required: true,
  661. message: "请输入备案建设周期",
  662. trigger: "blur",
  663. }, ],
  664. recordUrl: [{
  665. required: true,
  666. message: "请上传备案表信息",
  667. trigger: "blur",
  668. }, ],
  669. contactLeader: [{
  670. required: true,
  671. message: "请输入联系领导",
  672. trigger: "blur",
  673. }, ],
  674. contactPhone: [{
  675. required: true,
  676. message: "请输入联系方式",
  677. trigger: "blur",
  678. }, ],
  679. contactCompany: [{
  680. required: true,
  681. message: "请输入责任单位",
  682. trigger: "blur",
  683. }, ],
  684. contactPerson: [{
  685. required: true,
  686. message: "请输入责任人",
  687. trigger: "blur",
  688. }, ],
  689. contactPersonPhone: [{
  690. required: true,
  691. message: "请输入责任人联系方式",
  692. trigger: "blur",
  693. }, ],
  694. },
  695. form: {
  696. bmProjectId: this.$route.query.setid,
  697. id: -1,
  698. orderDate: "", //签约日期
  699. investmentType: "", //投资方式
  700. isOutInvestment: "", // 是否外资(N:Y)
  701. totInvestment: "", //总投资额度
  702. fixedAssets: "", //固定资产投资额度
  703. overseasInvestment: "", //境外投资
  704. jnswInvestm: "", //境内省外投资
  705. snswInvestm: "", //省内市外投资
  706. snxwInvestm: "", //市内县外投资
  707. xnInvestm: "", //县内投资
  708. isIndependentLan: "", //是否独立供地(N:Y)
  709. landArea: "", //供地面积
  710. landAddress: "", //供地位置
  711. landPhoto: "", //土地证ur
  712. circulationLand: "", //流转土地面积
  713. circulationAddres: "", //流转土地位置
  714. circulationDoc: "", //土地流转合同
  715. circulationPhoto: "", //产权证
  716. leasePlantArea: "", //租赁厂房面积
  717. leasePlantAddress: "", //租赁厂房位置
  718. leasePlantDoc: "", //租赁合同
  719. leasePlantPhoto: "", //租赁产权证
  720. agreementTot: "", //租赁产权证
  721. agreementTax: "", // 合同约定税收
  722. agreementStartdate: "", // 合同约定开工时间
  723. agreementEnddate: "", //合同约定竣工时间
  724. agreementPartner: "", //合同签约对方
  725. partner: "", //对方合同签约人
  726. agreementUs: "", //合同签约我方
  727. signUs: "", //我方合同签约人
  728. agreementThird: "", //第三方
  729. third: "", //第三方签约人
  730. agreementUrl: [], //合同url
  731. name: "", //在潜注册公司名称
  732. legalRep: "", //法定代表人
  733. totMoney: "", //注册资本金
  734. address: "", //注册地址
  735. code: "", //统一社会信用代码
  736. bussinessUrl: "", //营业执照图片url
  737. recordName: "", //备案单位
  738. recordCode: "", //备案文号
  739. recordTot: "", //备案总投资额
  740. recordTime: "", //备案建设周期
  741. recordUrl: [], //备案表url
  742. contactLeader: "", //企业包服务-联系领导
  743. contactPhone: "", //联系方式
  744. contactCompany: "", //责任单位
  745. contactPerson: "", //责任人
  746. contactPersonPhone: "", //责任人联系方式
  747. },
  748. idcardFrontFlie: [],
  749. idcardBackFlie: [],
  750. fileList: [],
  751. };
  752. },
  753. mounted() {
  754. this.queryParams.bmProjectId = this.$route.query.setid;
  755. this.setrd = this.$route.query.setrd;
  756. this.getOrderinfo();
  757. this.getShareholderList();
  758. },
  759. methods: {
  760. //审核
  761. applyBtn() {
  762. var that = this
  763. this.$confirm("是否确认审核", "提醒", {
  764. confirmButtonText: "确定",
  765. cancelButtonText: "取消",
  766. type: "warning",
  767. })
  768. .then(function() {
  769. return setExamine({
  770. code: 3,
  771. bmProjectId: that.queryParams.bmProjectId,
  772. });
  773. })
  774. .then(() => {
  775. this.msgSuccess("审核成功");
  776. setTimeout(res => {
  777. this.$router.go(-1)
  778. }, 1000)
  779. });
  780. },
  781. //驳回
  782. backBtn() {
  783. var that = this
  784. this.$confirm("是否确认驳回", "提醒", {
  785. confirmButtonText: "确定",
  786. cancelButtonText: "取消",
  787. type: "warning",
  788. })
  789. .then(function() {
  790. return setReject({
  791. code: 2,
  792. bmProjectId: that.queryParams.bmProjectId,
  793. });
  794. })
  795. .then(() => {
  796. this.msgSuccess("驳回成功");
  797. setTimeout(res => {
  798. this.$router.go(-1)
  799. }, 1000)
  800. });
  801. },
  802. upBtn() {
  803. var that = this
  804. this.$refs["form"].validate((valid) => {
  805. if (valid) {
  806. let zNum = (this.form.overseasInvestment-0)+ (this.form.jnswInvestm-0)+ (this.form.snswInvestm-0)+ (this.form.snxwInvestm-0)+ (this.form.xnInvestm-0)
  807. console.log(this.form.totInvestment,zNum)
  808. if (this.form.totInvestment != zNum) {
  809. this.msgError("请重新填写总投资额,总投资额度与其他投资数总和不等");
  810. return;
  811. }
  812. if (this.total == 0) {
  813. this.msgError("企业股东不能为空,请上传企业股东");
  814. return;
  815. }
  816. let data = JSON.parse(JSON.stringify(this.form));
  817. data.isOutInvestment = Number(data.isOutInvestment)
  818. data.agreementUrl = data.agreementUrl.join(",");
  819. data.recordUrl = data.recordUrl.join(",");
  820. if (this.form.id) {
  821. // 修改
  822. setOrderinfo(JSON.stringify(data)).then((res) => {
  823. this.$confirm("是否确认提交?", "提醒", {
  824. confirmButtonText: "确定",
  825. cancelButtonText: "取消",
  826. type: "warning",
  827. })
  828. .then(function() {
  829. return getExamine({
  830. code: 1,
  831. bmProjectId: that.$route.query.setid,
  832. })
  833. })
  834. .then(() => {
  835. this.msgSuccess("提交成功");
  836. setTimeout(res => {
  837. this.$router.go(-1)
  838. }, 1000)
  839. });
  840. });
  841. } else {
  842. // 新增
  843. addOrderinfo(JSON.stringify(data)).then((res) => {
  844. this.$confirm("是否确认提交?", "提醒", {
  845. confirmButtonText: "确定",
  846. cancelButtonText: "取消",
  847. type: "warning",
  848. })
  849. .then(function() {
  850. return getExamine({
  851. code: 1,
  852. bmProjectId: that.$route.query.setid,
  853. })
  854. })
  855. .then(() => {
  856. this.msgSuccess("提交成功");
  857. setTimeout(res => {
  858. this.$router.go(-1)
  859. }, 1000)
  860. });
  861. });
  862. }
  863. }
  864. });
  865. },
  866. goBtn() {
  867. this.$router.go(-1);
  868. },
  869. addshareBtn() {
  870. this.reset();
  871. this.title = "添加企业股东";
  872. this.open = true;
  873. },
  874. // 表单重置
  875. reset() {
  876. this.sharData = {
  877. bmProjectId: this.$route.query.setid,
  878. name: "",
  879. equityRatio: 0,
  880. idcard: "",
  881. idcardFront: "",
  882. idcardBack: "",
  883. };
  884. this.idcardFrontFlie = [];
  885. this.idcardBackFlie = [];
  886. this.resetForm("forms");
  887. },
  888. upl_fn(res, file) {
  889. this.form.landPhoto = res.url;
  890. },
  891. upl_fn_lzht(res, file) {
  892. this.form.circulationDoc = res.url;
  893. },
  894. upl_fn_cqz(res, file) {
  895. this.form.circulationPhoto = res.url;
  896. },
  897. upl_fn_zlht(res, file) {
  898. this.form.leasePlantDoc = res.url;
  899. },
  900. upl_fn_zlcqz(res, file) {
  901. this.form.leasePlantPhoto = res.url;
  902. },
  903. up_loat_htwb(res, file) {
  904. this.form.agreementUrl.push(res.url);
  905. },
  906. up_loat_bab(res, file) {
  907. this.form.recordUrl.push(res.url);
  908. },
  909. upl_fn_zzfyj(res, file) {
  910. this.form.bussinessUrl = res.url;
  911. },
  912. upl_fn_sfzzm(res, file) {
  913. this.idcardFrontFlie = [];
  914. this.idcardFrontFlie = [{
  915. name: res.url,
  916. url: res.url,
  917. }, ];
  918. this.sharData.idcardFront = res.url;
  919. },
  920. upl_remove_sfzzm() {
  921. this.idcardFrontFlie = [];
  922. this.sharData.idcardFront = "";
  923. },
  924. upl_remove_sfzfm() {
  925. this.idcardBackFlie = [];
  926. this.sharData.idcardBack = "";
  927. },
  928. upl_fn_sfzfm(res, file) {
  929. this.idcardBackFlie = [];
  930. this.idcardBackFlie = [{
  931. name: res.url,
  932. url: res.url,
  933. }, ];
  934. this.sharData.idcardBack = res.url;
  935. },
  936. getShareholderList() {
  937. getShareholderList(this.queryParams).then((res) => {
  938. this.shareholderList = res.rows;
  939. this.total = res.total;
  940. this.loading = false;
  941. });
  942. },
  943. submitForms() {
  944. this.$refs["forms"].validate((valid) => {
  945. if (valid) {
  946. if (this.sharData.id) {
  947. setShareholder(this.sharData).then((res) => {
  948. this.open = false;
  949. this.msgSuccess("修改成功");
  950. this.getShareholderList();
  951. });
  952. } else {
  953. addShareholder(this.sharData).then((res) => {
  954. this.open = false;
  955. this.msgSuccess("新增成功");
  956. this.getShareholderList();
  957. });
  958. }
  959. }
  960. });
  961. },
  962. submitForm() {
  963. this.$refs["form"].validate((valid) => {
  964. if (valid) {
  965. let zNum = (this.form.overseasInvestment-0)+ (this.form.jnswInvestm-0)+ (this.form.snswInvestm-0)+ (this.form.snxwInvestm-0)+ (this.form.xnInvestm-0)
  966. console.log(this.form.totInvestment,zNum)
  967. if (this.form.totInvestment != zNum) {
  968. this.msgError("请重新填写总投资额,总投资额度与其他投资数总和不等");
  969. return;
  970. }
  971. if (this.total == 0) {
  972. this.msgError("企业股东不能为空,请上传企业股东");
  973. return;
  974. }
  975. let data = JSON.parse(JSON.stringify(this.form));
  976. data.isOutInvestment = Number(data.isOutInvestment)
  977. data.agreementUrl = data.agreementUrl.join(",");
  978. data.recordUrl = data.recordUrl.join(",");
  979. if (this.form.id!=-1) {
  980. // 修改
  981. setOrderinfo(JSON.stringify(data)).then((res) => {
  982. this.msgSuccess("修改成功");
  983. this.$router.push({
  984. path: "/management/info/index",
  985. });
  986. });
  987. } else {
  988. // 新增
  989. addOrderinfo(JSON.stringify(data)).then((res) => {
  990. this.msgSuccess("缓存成功");
  991. this.$router.push({
  992. path: "/management/info/index",
  993. });
  994. });
  995. }
  996. }
  997. });
  998. },
  999. getOrderinfo() {
  1000. getOrderinfo(this.queryParams.bmProjectId).then((res) => {
  1001. console.log(res);
  1002. if (res.data) {
  1003. let data = res.data
  1004. let arr = []
  1005. for(let item of data.agreementUrl.split(',')){
  1006. arr.push({
  1007. name: item,
  1008. url: item,
  1009. })
  1010. }
  1011. this.flieListHt = arr
  1012. let arrs = []
  1013. for(let item of data.recordUrl.split(',')){
  1014. arrs.push({
  1015. name: item,
  1016. url: item,
  1017. })
  1018. }
  1019. this.flieListBa = arrs
  1020. this.flieListYzz = [{
  1021. name: data.bussinessUrl,
  1022. url: data.bussinessUrl,
  1023. }]
  1024. this.fileListZcq = [{
  1025. name: data.leasePlantPhoto,
  1026. url: data.leasePlantPhoto,
  1027. }]
  1028. this.fileListZht = [{
  1029. name: data.leasePlantDoc,
  1030. url: data.leasePlantDoc,
  1031. }]
  1032. this.fileListCqz = [{
  1033. name: data.circulationPhoto,
  1034. url: data.circulationPhoto,
  1035. }]
  1036. this.fileListTdls = [{
  1037. name: data.circulationDoc,
  1038. url: data.circulationDoc,
  1039. }]
  1040. this.fileListTdz = [{
  1041. name: data.landPhoto,
  1042. url: data.landPhoto,
  1043. }]
  1044. data.isOutInvestment = Boolean(data.isOutInvestment - 0)
  1045. data.agreementUrl = data.agreementUrl.split(',')
  1046. data.recordUrl = data.recordUrl.split(',')
  1047. this.form = data;
  1048. }
  1049. });
  1050. },
  1051. submitUpload_bab() {
  1052. this.$refs.bAupload.submit();
  1053. },
  1054. submitUpload() {
  1055. this.$refs.upload.submit();
  1056. },
  1057. /** 修改按钮操作 */
  1058. handleUpdate(row) {
  1059. this.reset();
  1060. const id = row.id || this.ids;
  1061. getShareholder(id).then((response) => {
  1062. this.sharData = response.data;
  1063. this.idcardFrontFlie = [{
  1064. name: response.data.idcardBack,
  1065. url: response.data.idcardBack,
  1066. }, ];
  1067. this.idcardBackFlie = [{
  1068. name: response.data.idcardFront,
  1069. url: response.data.idcardFront,
  1070. }, ];
  1071. this.open = true;
  1072. this.title = "修改股东信息";
  1073. });
  1074. },
  1075. /** 删除按钮操作 */
  1076. handleDelete(id) {
  1077. this.$confirm("是否确认删除该股东", "警告", {
  1078. confirmButtonText: "确定",
  1079. cancelButtonText: "取消",
  1080. type: "warning",
  1081. })
  1082. .then(function() {
  1083. return delShareholder(id);
  1084. })
  1085. .then(() => {
  1086. this.getShareholderList();
  1087. this.msgSuccess("删除成功");
  1088. });
  1089. },
  1090. handleRemove(file, fileList) {
  1091. for (let i = this.form.agreementUrl.length - 1; i >= 0; i--) {
  1092. if (this.form.agreementUrl[i] == file.response.url) {
  1093. this.form.agreementUrl.splice(i, 1);
  1094. }
  1095. }
  1096. },
  1097. handleRemove_bab(file, fileList) {
  1098. for (let i = this.form.recordUrl.length - 1; i >= 0; i--) {
  1099. if (this.form.recordUrl[i] == file.response.url) {
  1100. this.form.recordUrl.splice(i, 1);
  1101. }
  1102. }
  1103. },
  1104. handlePreview(file) {
  1105. console.log(file, 22);
  1106. },
  1107. },
  1108. };
  1109. </script>
  1110. <style lang="scss" scoped>
  1111. .imgs {
  1112. width: 100px;
  1113. height: 100px;
  1114. object-fit: cover;
  1115. }
  1116. .roiyy {
  1117. position: fixed;
  1118. top: 95px;
  1119. left: 0;
  1120. width: 100%;
  1121. padding-left: 230px;
  1122. padding-right: 30px;
  1123. box-sizing: border-box;
  1124. z-index: 999;
  1125. }
  1126. .ads_box {
  1127. margin: 18px 0;
  1128. font-size: 14px;
  1129. color: #666;
  1130. width: 140px;
  1131. display: flex;
  1132. align-items: center;
  1133. cursor: pointer;
  1134. .add_icon {
  1135. margin-right: 6px;
  1136. width: 15px;
  1137. height: 15px;
  1138. }
  1139. }
  1140. .sign_box {
  1141. padding: 26px 23px;
  1142. .sign_tit {
  1143. font-size: 14px;
  1144. border-left: 3px solid #1c84c6;
  1145. padding: 5px 0 5px 13px;
  1146. color: #343434;
  1147. line-height: 1;
  1148. margin: 8px 0;
  1149. font-weight: bold;
  1150. span {
  1151. color: #df0024;
  1152. margin-left: 10px;
  1153. }
  1154. }
  1155. .elItem {
  1156. margin: 15px 0;
  1157. }
  1158. }
  1159. .qz_name {
  1160. font-size: 14px;
  1161. color: #606266;
  1162. display: inline-block;
  1163. margin: 15px 0 15px;
  1164. font-weight: bold;
  1165. text-align: right;
  1166. line-height: 36px;
  1167. width: 100%;
  1168. }
  1169. </style>