index.vue 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914
  1. <template>
  2. <div class="app-conta">
  3. <el-row :gutter="10" class="mb8 roiyy">
  4. <el-col :span="1.5" v-if="setrd % 2 == 1">
  5. <el-button
  6. type="primary"
  7. @click="submitCtion"
  8. v-hasPermi="['projectConstruction:construction:add']"
  9. v-if="tab == 0 || tab == 3"
  10. >提交</el-button>
  11. <!-- handleAudit -->
  12. <!-- <el-button
  13. type="primary"
  14. @click="submitCtion"
  15. v-hasPermi="['projectConstruction:construction:add']"
  16. v-if="tab == 0 || tab == 3"
  17. >保存</el-button> -->
  18. </el-col>
  19. <el-col :span="1.5">
  20. <el-button type="primary" @click="handleUpdatex">取消</el-button>
  21. </el-col>
  22. <el-col :span="1.5">
  23. <el-button type="primary" @click="nextYg" v-if="tab == 1 || tab == 2"
  24. >下一页</el-button
  25. >
  26. </el-col>
  27. <el-col :span="1.5" :offset="16" v-if="setrd % 2 == 1&&setrd>2">
  28. <el-button
  29. type="danger"
  30. @click="backProBtn"
  31. v-hasPermi="['bmProject:project:back']"
  32. >撤销审核</el-button
  33. >
  34. </el-col>
  35. <el-col :span="1.5" :offset="18" v-if="setrd % 2 == 0">
  36. <el-button
  37. type="danger"
  38. @click="applyBtn"
  39. style="background: #00B034;color: #FFF;border: none;"
  40. v-hasPermi="['bmProject:project:pass']"
  41. >审核</el-button
  42. >
  43. <el-button
  44. type="danger"
  45. @click="backBtn"
  46. style="background: #3FBCEF;color: #FFF;border: none;"
  47. v-hasPermi="['bmProject:project:reject']"
  48. >驳回</el-button
  49. >
  50. </el-col>
  51. <!-- <el-col :span="1.5" :offset="18">
  52. <el-button
  53. type="danger"
  54. @click="handleAudit"
  55. v-hasPermi="['bmProject:project:pass']"
  56. v-if="tab == 0 || tab == 3"
  57. >确认审核</el-button>
  58. </el-col> -->
  59. </el-row>
  60. <div class="nauer">
  61. <!-- 在建项目 -->
  62. <div>
  63. <div class="nstruction">
  64. <div class="nstruction_nav">
  65. <p>
  66. <span>*</span>
  67. <span>合同约定开工时间:</span>
  68. </p>
  69. <p>{{ queryParamstwr.orderBeginTime }}</p>
  70. </div>
  71. <div class="nstruction_navne">
  72. <p>
  73. <span>*</span>
  74. <span> 合同约定竣工时间:</span>
  75. </p>
  76. <p>{{ queryParamstwr.orderEndTime }}</p>
  77. </div>
  78. </div>
  79. <div class="naue_tab">
  80. <p
  81. @click="tabClid(index)"
  82. v-for="(item, index) in tabNume"
  83. :key="index"
  84. :class="[tab == index ? 'p' : '']"
  85. >
  86. {{ item }}
  87. </p>
  88. </div>
  89. <!-- 内容 -->
  90. <div class="namjeu" v-if="tab == 0">
  91. <el-form
  92. :model="queryParamstwr"
  93. ref="queryForm"
  94. :rules="queryForm"
  95. :inline="true"
  96. v-show="showSearch"
  97. label-width="135px"
  98. label-position="center"
  99. class="manager_form"
  100. >
  101. <el-form-item
  102. label="施工许可证:"
  103. prop="constructionCode"
  104. class="maget_ty"
  105. :rules="[{ required: true, message: '请上传施工许可证', trigger: 'blur' }]"
  106. >
  107. <div class="forieu" style="width: 618px">
  108. <div class="bure burert">
  109. <el-upload
  110. :action="defaultSettings.urls + process+'/common/upload'"
  111. :auto-upload="false"
  112. ref="uploadone"
  113. :before-upload="beforeAvatarUpload"
  114. list-type="picture-card"
  115. :on-preview="handlePictureCardPreview"
  116. :on-remove="handleRemove"
  117. :on-success="handleSuccpermit"
  118. :multiple="true"
  119. :disabled = "disfal"
  120. :file-list="fileListther"
  121. >
  122. <!-- <i slot="default" class="el-icon-plus"></i> -->
  123. <div class="ijeut">
  124. <el-button
  125. plain
  126. slot="trigger"
  127. size="small"
  128. type="primary"
  129. :disabled = "disfal"
  130. >选择图片</el-button
  131. >
  132. <!-- margin-top: 15%; transform: translateY(-50%); -->
  133. </div>
  134. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
  135. </el-upload>
  136. <div class="ijeut">
  137. <el-button
  138. style="margin-left: 10px; height: 32px"
  139. size="small"
  140. type="primary"
  141. :disabled = "disfal"
  142. @click="submitUploaduccpermit"
  143. >开始上传</el-button
  144. >
  145. </div>
  146. </div>
  147. </div>
  148. </el-form-item>
  149. <el-form-item label="是否开工建设:" prop="isConstruction">
  150. <el-select
  151. v-model="queryParamstwr.isConstruction"
  152. placeholder="请选择"
  153. clearable
  154. :disabled = "disfal"
  155. size="small"
  156. style="width: 458px"
  157. >
  158. <el-option
  159. v-for="dict in typeOptions"
  160. :key="dict.dictValue"
  161. :label="dict.dictLabel"
  162. :value="dict.dictValue"
  163. />
  164. </el-select>
  165. </el-form-item>
  166. <el-form-item label=" 开工日期:" prop="constructionStartdate" :rules="[{ required: true, message: '请选择开工日期', trigger: 'blur' }]">
  167. <el-date-picker
  168. type="date"
  169. placeholder="选择日期"
  170. :disabled = "disfal"
  171. v-model="queryParamstwr.constructionStartdate"
  172. style="width: 335px"
  173. ></el-date-picker>
  174. </el-form-item>
  175. <el-form-item label="预计完工日期:" prop="constructionEnddate" :rules="[{ required: true, message: '请选择预计完工日期', trigger: 'blur' }]">
  176. <el-date-picker
  177. type="date"
  178. :disabled = "disfal"
  179. placeholder="选择日期"
  180. v-model="queryParamstwr.constructionEnddate"
  181. style="width: 335px"
  182. ></el-date-picker>
  183. </el-form-item>
  184. <el-form-item label="施工合同:" prop="constructionDoc" class="maget_ty" :rules="[{ required: true, message: '请上传施工合同', trigger: 'blur' }]" >
  185. <div class="forieu" style="width: 618px">
  186. <div class="bure burert">
  187. <el-upload
  188. :action="defaultSettings.urls + process+'/common/upload'"
  189. :auto-upload="false"
  190. ref="uploadtwo"
  191. :before-upload="beforeAvatarUpload"
  192. list-type="picture-card"
  193. :on-preview="handlePictureCardPreview"
  194. :on-remove="handleRemove"
  195. :multiple="true"
  196. :on-success="handleSuccontract"
  197. :file-list="fileListfour"
  198. :disabled = "disfal"
  199. >
  200. <!-- <i slot="default" class="el-icon-plus"></i> -->
  201. <div class="ijeut">
  202. <el-button
  203. plain
  204. slot="trigger"
  205. size="small"
  206. type="primary"
  207. :disabled = "disfal"
  208. >选择图片</el-button
  209. >
  210. <!-- margin-top: 15%; transform: translateY(-50%); -->
  211. </div>
  212. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
  213. </el-upload>
  214. <div class="ijeut">
  215. <el-button
  216. style="margin-left: 10px; height: 32px"
  217. size="small"
  218. type="primary"
  219. :disabled = "disfal"
  220. @click="submitUploaduccontract"
  221. >开始上传</el-button
  222. >
  223. </div>
  224. </div>
  225. </div>
  226. </el-form-item>
  227. <el-form-item label="开工照片:" prop="constructionPhoto" class="maget_ty" :rules="[{ required: true, message: '请上传开工照片', trigger: 'blur' }]" >
  228. <div class="forieu" style="width: 618px">
  229. <div class="bure burert">
  230. <el-upload
  231. :action="defaultSettings.urls + process+'/common/upload'"
  232. :auto-upload="false"
  233. ref="upload"
  234. :before-upload="beforeAvatarUpload"
  235. list-type="picture-card"
  236. :on-preview="handlePictureCardPreview"
  237. :on-remove="handleRemove"
  238. :on-success="handleSucc"
  239. :multiple="true"
  240. :disabled = "disfal"
  241. :file-list="fileListfive"
  242. >
  243. <!-- <i slot="default" class="el-icon-plus"></i> -->
  244. <div class="ijeut">
  245. <el-button
  246. plain
  247. slot="trigger"
  248. size="small"
  249. type="primary"
  250. :disabled = "disfal"
  251. >选择图片</el-button
  252. >
  253. <!-- margin-top: 15%; transform: translateY(-50%); -->
  254. </div>
  255. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
  256. </el-upload>
  257. <div class="ijeut">
  258. <el-button
  259. style="margin-left: 10px; height: 32px"
  260. size="small"
  261. type="primary"
  262. @click="submitUpload"
  263. :disabled = "disfal"
  264. >开始上传</el-button
  265. >
  266. </div>
  267. </div>
  268. </div>
  269. </el-form-item>
  270. </el-form>
  271. <p class="kaieu_tw" @click="handleAdd(0)">
  272. <i class="el-icon-circle-plus-outline"></i> <i style="color: red;">*</i> 添加开工照片
  273. </p>
  274. <el-table v-loading="loading" :data="configList">
  275. <!-- <el-table-column type="selection" width="55" align="center" /> -->
  276. <el-table-column label="时间" align="center" prop="createTime" />
  277. <el-table-column
  278. label="进度"
  279. align="center"
  280. prop="rateTypeName"
  281. :show-overflow-tooltip="true"
  282. />
  283. <el-table-column label="照片" align="center" prop="photo">
  284. <!-- class-name="small-padding fixed-width" -->
  285. <template slot-scope="scope">
  286. <div class="demo-image__preview">
  287. <el-image
  288. style="width: 100px; height: 100px"
  289. :src="scope.row.phototwo"
  290. :preview-src-list="scope.row.photo"
  291. >
  292. </el-image>
  293. </div>
  294. </template>
  295. </el-table-column>
  296. <el-table-column label="操作" align="center">
  297. <!-- class-name="small-padding fixed-width" -->
  298. <template slot-scope="scope">
  299. <el-button
  300. size="mini"
  301. type="danger"
  302. @click="handleDelete(scope.row)"
  303. v-hasPermi="['system:config:remove']"
  304. >删除</el-button
  305. >
  306. </template>
  307. </el-table-column>
  308. </el-table>
  309. <pagination
  310. v-if="totaltwo > 0 && tab == 0"
  311. :total="totaltwo"
  312. :page.sync="queryParamstwrction.pageNum"
  313. :limit.sync="queryParamstwrction.pageSize"
  314. @pagination="getListtoi"
  315. />
  316. </div>
  317. <div class="equipment" v-if="tab == 1">
  318. <p class="kaieu_tw" @click="quipment(1)">
  319. <i class="el-icon-circle-plus-outline"></i> <i style="color: red; margin-right: 5px;">*</i>添加设备安装信息
  320. </p>
  321. <el-table v-loading="loading" :data="configListher">
  322. <!-- <el-table-column type="selection" width="55" align="center" /> -->
  323. <el-table-column label="时间" align="center" prop="createTime" />
  324. <el-table-column
  325. label="进度"
  326. align="center"
  327. prop="eqTypeName"
  328. :show-overflow-tooltip="true"
  329. />
  330. <el-table-column label="照片" align="center">
  331. <!-- class-name="small-padding fixed-width" -->
  332. <template slot-scope="scope">
  333. <div class="demo-image__preview">
  334. <el-image
  335. style="width: 100px; height: 100px"
  336. :src="scope.row.phototwo"
  337. :preview-src-list="scope.row.photo"
  338. >
  339. </el-image>
  340. </div>
  341. </template>
  342. </el-table-column>
  343. <el-table-column label="操作" align="center">
  344. <!-- class-name="small-padding fixed-width" -->
  345. <template slot-scope="scope">
  346. <el-button
  347. size="mini"
  348. type="danger"
  349. @click="handleDeletetwo(scope.row)"
  350. v-hasPermi="['system:config:remove']"
  351. >删除</el-button
  352. >
  353. </template>
  354. </el-table-column>
  355. </el-table>
  356. <pagination
  357. v-if="totalth > 0"
  358. :total="totalth"
  359. :page.sync="queryParamsstallation.pageNum"
  360. :limit.sync="queryParamsstallation.pageSize"
  361. @pagination="getListther"
  362. />
  363. </div>
  364. <div class="funding" v-if="tab == 2">
  365. <p class="kaieu">到资金额合计: {{ queryParamstwo }} 万元</p>
  366. <p class="kaieu_tw" @click="handleAdd(2)">
  367. <i class="el-icon-circle-plus-outline"></i> <i style="color: red;margin-right: 5px;">*</i>添加项目到资
  368. </p>
  369. <el-table v-loading="loading" :data="configLisfour">
  370. <!-- <el-table-column type="selection" width="55" align="center" /> -->
  371. <el-table-column
  372. label="到资类型"
  373. align="center"
  374. prop="payForTypeName"
  375. :show-overflow-tooltip="true"
  376. />
  377. <el-table-column label="金额(单位:万元)" align="center" prop="payForMoney" />
  378. <el-table-column label="到资证明" align="center" prop="photo">
  379. <!-- class-name="small-padding fixed-width" -->
  380. <template slot-scope="scope">
  381. <div class="demo-image__preview">
  382. <el-image
  383. style="width: 100px; height: 100px"
  384. :src="scope.row.phototwo"
  385. :preview-src-list="scope.row.photo"
  386. >
  387. </el-image>
  388. </div>
  389. </template>
  390. </el-table-column>
  391. <el-table-column label="操作" align="center">
  392. <!-- class-name="small-padding fixed-width" -->
  393. <template slot-scope="scope">
  394. <el-button
  395. size="mini"
  396. type="danger"
  397. @click="handleDeletether(scope.row)"
  398. v-hasPermi="['system:config:remove']"
  399. >删除</el-button
  400. >
  401. </template>
  402. </el-table-column>
  403. </el-table>
  404. <pagination
  405. v-if="total > 0 && tab == 2"
  406. :total="total"
  407. :page.sync="queryParams.pageNum"
  408. :limit.sync="queryParams.pageSize"
  409. @pagination="getListfour"
  410. />
  411. </div>
  412. </div>
  413. <div class="namjeu" v-if="tab == 3">
  414. <el-form
  415. :model="queryParamstheyr"
  416. ref="queryFormtwo"
  417. :rules="queryFormtwo"
  418. :inline="true"
  419. v-show="showSearch"
  420. label-width="135px"
  421. label-position="center"
  422. class="manager_form"
  423. >
  424. <el-form-item label=" 入统时间:" prop="statisticsDate" :rules="[{ required: true, message: '请选择入统时间', trigger: 'blur' }]">
  425. <el-date-picker
  426. type="date"
  427. :disabled = "disfal"
  428. placeholder="选择日期"
  429. v-model="queryParamstheyr.statisticsDate"
  430. style="width: 335px"
  431. ></el-date-picker>
  432. </el-form-item>
  433. <el-form-item
  434. label="入统截图:"
  435. prop="statisticsPhoto"
  436. class="maget_ty maget_tyty"
  437. :rules="[{ required: true, message: '请上传入统截图', trigger: 'blur' }]"
  438. >
  439. <div class="forieu" style="width: 618px">
  440. <div class="bure burert">
  441. <el-upload
  442. :action="defaultSettings.urls + process+'/common/upload'"
  443. :auto-upload="false"
  444. ref="upload"
  445. :before-upload="beforeAvatarUpload"
  446. list-type="picture-card"
  447. :on-preview="handlePictureCardPreview"
  448. :on-remove="handleRemove"
  449. :on-success="handleSuccntry"
  450. :multiple="true"
  451. :disabled = "disfal"
  452. :file-list="fileListthertwo"
  453. >
  454. <!-- <i slot="default" class="el-icon-plus"></i> -->
  455. <div class="ijeut">
  456. <el-button plain slot="trigger" :disabled = "disfal" size="small" type="primary"
  457. >选择图片</el-button
  458. >
  459. <!-- margin-top: 15%; transform: translateY(-50%); -->
  460. </div>
  461. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
  462. </el-upload>
  463. <div class="ijeut">
  464. <el-button
  465. style="margin-left: 10px; height: 32px"
  466. size="small"
  467. type="primary"
  468. :disabled = "disfal"
  469. @click="submitUpload"
  470. >开始上传</el-button
  471. >
  472. </div>
  473. </div>
  474. </div>
  475. </el-form-item>
  476. </el-form>
  477. </div>
  478. </div>
  479. <el-dialog :visible.sync="dialogVisible">
  480. <img width="100%" :src="dialogImageUrl" alt="" />
  481. </el-dialog>
  482. <!-- 添加或修改参数配置对话框 -->
  483. <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body :close-on-click-modal="false">
  484. <el-form ref="form" :model="form" :rules="rules" label-width="150px">
  485. <!-- <el-form-item label="时间" prop="configName">
  486. <el-date-picker type="date" placeholder="选择日期" v-model="form.createTime" style="width: 335px"></el-date-picker>
  487. </el-form-item> -->
  488. <el-form-item label="进度" prop="configKey">
  489. <el-select
  490. v-model="form.rateType"
  491. placeholder="选择进度"
  492. clearable
  493. :disabled = "disfal"
  494. size="small"
  495. style="width: 458px"
  496. >
  497. <el-option
  498. v-for="dict in typeOptionstwo"
  499. :key="dict.dictValue"
  500. :label="dict.dictLabel"
  501. :value="dict.dictValue"
  502. />
  503. </el-select>
  504. </el-form-item>
  505. <el-form-item label="图片" prop="configValue">
  506. <el-upload
  507. class="upload-demo"
  508. ref="upload"
  509. :action="defaultSettings.urls + process+'/common/upload'"
  510. :on-preview="handlePreviewther"
  511. :on-remove="handleRemovether"
  512. :on-success="handleSuccther"
  513. :file-list="fileListtherrt"
  514. :auto-upload="true"
  515. :multiple="true"
  516. list-type="picture"
  517. :disabled = "disfal"
  518. >
  519. <el-button slot="trigger" :disabled = "disfal" size="small" type="primary"
  520. >选取文件</el-button
  521. >
  522. <!-- <el-button
  523. style="margin-left: 10px"
  524. size="small"
  525. type="success"
  526. :disabled = "disfal"
  527. @click="submitUploadther"
  528. >上传到服务器</el-button
  529. > -->
  530. <div slot="tip" class="el-upload__tip">
  531. 只能上传jpg/png文件,且不超过500kb
  532. </div>
  533. </el-upload>
  534. </el-form-item>
  535. </el-form>
  536. <div slot="footer" class="dialog-footer">
  537. <el-button type="primary" @click="submitForm">确 定</el-button>
  538. <el-button @click="cancel">取 消</el-button>
  539. </div>
  540. </el-dialog>
  541. <!-- //设备安装 -->
  542. <el-dialog
  543. :title="titletwo"
  544. :visible.sync="opentwo"
  545. width="800px"
  546. append-to-body
  547. :close-on-click-modal="false"
  548. >
  549. <el-form
  550. ref="formtwo"
  551. :model="formtwo"
  552. :rules="rulestwo"
  553. label-width="150px"
  554. >
  555. <!-- <el-form-item label="时间" prop="configName">
  556. <el-date-picker type="date" placeholder="选择日期" v-model="form.createTime" style="width: 335px"></el-date-picker>
  557. </el-form-item> -->
  558. <el-form-item label="进度" prop="configKey">
  559. <el-select
  560. v-model="formtwo.eqType"
  561. placeholder="选择进度"
  562. clearable
  563. :disabled = "disfal"
  564. size="small"
  565. style="width: 458px"
  566. >
  567. <el-option
  568. v-for="dict in typeOptionsther"
  569. :key="dict.dictValue"
  570. :label="dict.dictLabel"
  571. :value="dict.dictValue"
  572. />
  573. </el-select>
  574. </el-form-item>
  575. <el-form-item label="图片" prop="configValue">
  576. <el-upload
  577. class="upload-demo"
  578. ref="upload"
  579. :action="defaultSettings.urls + process+'/common/upload'"
  580. :on-preview="handlePreviewther"
  581. :on-remove="handleRemovether"
  582. :on-success="handleSuccther"
  583. :file-list="fileListtherrt"
  584. :auto-upload="true"
  585. :multiple="true"
  586. :disabled = "disfal"
  587. list-type="picture"
  588. >
  589. <el-button slot="trigger" :disabled = "disfal" size="small" type="primary"
  590. >选取文件</el-button
  591. >
  592. <!-- :disabled = "disfal" -->
  593. <!-- -->
  594. <!-- <el-button
  595. style="margin-left: 10px"
  596. size="small"
  597. type="success"
  598. :disabled = "disfal"
  599. @click="submitUploadther"
  600. >上传到服务器</el-button
  601. > -->
  602. <div slot="tip" class="el-upload__tip">
  603. 只能上传jpg/png文件,且不超过500kb
  604. </div>
  605. </el-upload>
  606. </el-form-item>
  607. </el-form>
  608. <div slot="footer" class="dialog-footer">
  609. <el-button type="primary" @click="submitForm">确 定</el-button>
  610. <el-button @click="cancel">取 消</el-button>
  611. </div>
  612. </el-dialog>
  613. <!-- 项目到资 -->
  614. <el-dialog
  615. :title="titlether"
  616. :visible.sync="openther"
  617. width="800px"
  618. append-to-body
  619. :close-on-click-modal="false"
  620. >
  621. <el-form
  622. ref="formther"
  623. :model="formther"
  624. :rules="rulesther"
  625. label-width="150px"
  626. >
  627. <el-form-item label="到资类型" prop="payForType">
  628. <el-select
  629. v-model="formther.payForType"
  630. placeholder="选择到资类型"
  631. clearable
  632. size="small"
  633. :disabled = "disfal"
  634. style="width: 458px"
  635. >
  636. <el-option
  637. v-for="dict in typeOptionsfour"
  638. :key="dict.dictValue"
  639. :label="dict.dictLabel"
  640. :value="dict.dictValue"
  641. />
  642. </el-select>
  643. </el-form-item>
  644. <el-form-item label="到资金额(单位:万元)" prop="payForMoney">
  645. <el-input
  646. v-model="formther.payForMoney"
  647. placeholder="输入数字"
  648. clearable
  649. :disabled = "disfal"
  650. size="small"
  651. style="width: 458px"
  652. @keyup.enter.native="handleQuery"
  653. />
  654. </el-form-item>
  655. <el-form-item label="图片" prop="photo">
  656. <el-upload
  657. class="upload-demo"
  658. ref="upload"
  659. :action="defaultSettings.urls + process+'/common/upload'"
  660. :on-preview="handlePreviewther"
  661. :on-remove="handleRemovether"
  662. :on-success="handleSuccther"
  663. :on-change="handleChange"
  664. :file-list="fileListtherrt"
  665. :auto-upload="true"
  666. :multiple="true"
  667. :disabled = "disfal"
  668. list-type="picture"
  669. >
  670. <el-button slot="trigger" :disabled = "disfal" size="small" type="primary"
  671. >选取文件</el-button
  672. >
  673. <!-- <el-button
  674. style="margin-left: 10px"
  675. size="small"
  676. type="success"
  677. :disabled = "disfal"
  678. @click="submitUploadther"
  679. >上传到服务器</el-button
  680. > -->
  681. <div slot="tip" class="el-upload__tip">
  682. 只能上传jpg/png文件,且不超过500kb
  683. </div>
  684. </el-upload>
  685. </el-form-item>
  686. </el-form>
  687. <div slot="footer" class="dialog-footer">
  688. <el-button type="primary" @click="submitForm">确 定</el-button>
  689. <el-button @click="cancel">取 消</el-button>
  690. </div>
  691. </el-dialog>
  692. </div>
  693. </template>
  694. <script>
  695. import {
  696. listConfig,
  697. listConfigfive,
  698. listConfigsix,
  699. listConfigserve,
  700. listConfigfunding,
  701. listConfigarrival,
  702. listConfigintegration,
  703. getConfig,
  704. delConfig,
  705. delConfigther,
  706. delConfigfour,
  707. delConfigfive,
  708. addConfig,
  709. addConfigther,
  710. addConfigfour,
  711. addConfigfiv,
  712. addConfigtherction,
  713. addConfigsix,
  714. addConfigbout,
  715. updateConfig,
  716. updateConfigatruction,
  717. updateConfigntegration,
  718. exportConfig,
  719. clearCache,
  720. } from "@/api/system/config";
  721. const defaultSettings = require("@/settings.js");
  722. import{
  723. setExamine,
  724. setBack,
  725. setReject
  726. } from "@/api/projectInfo/info.js";
  727. export default {
  728. name: "Config",
  729. data() {
  730. return {
  731. process: process.env.VUE_APP_BASE_API,
  732. defaultSettings,
  733. disfal:false,
  734. // 遮罩层
  735. loading: true,
  736. //步骤条
  737. naueactive: 2,
  738. tab: 0,
  739. tabNume: ["项目施工", "设备安装", "项目到资", "项目入统"],
  740. // 选中数组
  741. ids: [],
  742. // 非单个禁用
  743. single: true,
  744. // 非多个禁用
  745. multiple: true,
  746. // 显示搜索条件
  747. showSearch: true,
  748. // 总条数
  749. total: 0,
  750. totaltwo: 0,
  751. totalth: 0,
  752. open: false,
  753. opentwo: false,
  754. openther: false,
  755. typeOptions: [],
  756. typeOptionstwo: [],
  757. typeOptionsther: [],
  758. typeOptionsfour: [],
  759. // 参数表格数据
  760. configList: [],
  761. configListwo: [],
  762. configListher: [],
  763. configLisfour: [],
  764. fileListtherrt: [], //弹框里的
  765. fileListfour: [],
  766. fileListfive: [],
  767. fileListthertwo: [],
  768. fileList: [{ name: "", url: "" }],
  769. fileListther: [],
  770. // 弹出层标题
  771. title: "",
  772. titletwo: "",
  773. titlether: "",
  774. dialogImageUrl: "",
  775. dialogVisible: false,
  776. disabled: false,
  777. // 查询参数
  778. queryParams: {
  779. pageNum: 1,
  780. pageSize: 10,
  781. configName: undefined,
  782. configKey: undefined,
  783. configType: undefined,
  784. },
  785. queryParamstwo: 0,
  786. queryParamstheyr: {
  787. bmProjectId:0,
  788. },
  789. queryParamstwr: {
  790. bmProjectId:0,
  791. },
  792. queryParamstwrction: {
  793. pageNum: 1,
  794. pageSize: 10,
  795. },
  796. queryParamsstallation: {
  797. pageNum: 1,
  798. pageSize: 10,
  799. },
  800. // 表单参数
  801. form: {},
  802. formtwo: {},
  803. formther: {},
  804. bmProjectId: 0,
  805. bmjdeu: {
  806. bmProjectId: 0,
  807. },
  808. imagese: [],
  809. numhu: 0, //判断
  810. // 添加开工照片表单校验
  811. rules: {
  812. rateType: [
  813. { required: true, message: '请选择进度', trigger: 'change' }
  814. ]
  815. // configKey: [
  816. // { required: true, message: "参数键名不能为空", trigger: "blur" }
  817. // ],
  818. // configValue: [
  819. // { required: true, message: "参数键值不能为空", trigger: "blur" }
  820. // ]
  821. },
  822. // 项目施工
  823. queryForm:{
  824. isConstruction: [
  825. { required: true, message: "请选择 是否开工建设", trigger: "blur" }
  826. ],
  827. constructionStartdate: [
  828. { type: 'date', required: true, message: '请选择开工时间', trigger: 'change' }
  829. ],
  830. constructionEnddate: [
  831. { type: 'date', required: true, message: '请选择预计完工时间', trigger: 'change' }
  832. ]
  833. },
  834. //项目入统
  835. queryFormtwo:{
  836. statisticsDate: [
  837. { type: 'date', required: true, message: '请选择入统时间', trigger: 'change' }
  838. ]
  839. },
  840. rulestwo: {},
  841. rulesther: {
  842. payForMoney: [
  843. { required: true, message: '请输入金额', trigger: 'change' }
  844. ]
  845. },
  846. //开工照片
  847. onstruction: [],
  848. permit: [],
  849. ontract: [],
  850. ntry: [],
  851. modify: 0, //判断是修改还是新增 新增0 修改 1
  852. ermit: [],
  853. ontractr: [],
  854. ruction: [],
  855. queryFormhye: {},
  856. udgment: 0, //项目入统判断是新增 还是修改 新增0 修改1
  857. udgmentList: [],
  858. };
  859. },
  860. created() {
  861. this.bmProjectId = this.$route.query.setid;
  862. this.bmjdeu.bmProjectId = this.$route.query.setid;
  863. this.queryParamsstallation.bmProjectId = this.$route.query.setid;
  864. this.queryParams.bmProjectId = this.$route.query.setid;
  865. this.setrd = this.$route.query.setrd;
  866. if(this.setrd != 5){
  867. this.disfal = true
  868. }else{
  869. this.disfal = false
  870. }
  871. console.log(this.bmjdeu);
  872. this.getList();
  873. this.getListtoi();
  874. // this.getListther()
  875. // this.getListfour()
  876. // this.getListfive()
  877. // this.getListsix()
  878. this.getDicts("sys_yes_no").then((response) => {
  879. this.typeOptions = response.data;
  880. });
  881. this.getDicts("project_rate").then((response) => {
  882. this.typeOptionstwo = response.data;
  883. });
  884. this.getDicts("project_schedule").then((response) => {
  885. this.typeOptionsther = response.data;
  886. });
  887. this.getDicts("project_pay").then((response) => {
  888. this.typeOptionsfour = response.data;
  889. });
  890. },
  891. methods: {
  892. backProBtn(){
  893. var that = this
  894. this.$confirm("是否确认撤销审核", "提醒", {
  895. confirmButtonText: "确定",
  896. cancelButtonText: "取消",
  897. type: "warning",
  898. })
  899. .then(function() {
  900. return setBack({
  901. code: 4,
  902. bmProjectId: that.bmProjectId,
  903. });
  904. })
  905. .then(() => {
  906. this.msgSuccess("撤销成功");
  907. setTimeout(res => {
  908. this.$router.go(-1)
  909. }, 1000)
  910. });
  911. },
  912. //审核
  913. applyBtn() {
  914. var that=this
  915. this.$confirm("是否确认审核", "提醒", {
  916. confirmButtonText: "确定",
  917. cancelButtonText: "取消",
  918. type: "warning",
  919. })
  920. .then(function () {
  921. return addConfigbout({
  922. code: 3,
  923. bmProjectId: that.bmProjectId,
  924. });
  925. })
  926. .then(() => {
  927. this.$router.go(-1);
  928. // this.getList();
  929. this.msgSuccess("审核成功");
  930. });
  931. },
  932. //驳回
  933. backBtn() {
  934. var that=this
  935. this.$prompt("请输入驳回意见", "提醒", {
  936. confirmButtonText: "确定",
  937. cancelButtonText: "取消",
  938. type: "warning",
  939. })
  940. .then(({ value }) => {
  941. return setReject({
  942. code: 2,
  943. bmProjectId: that.bmProjectId,
  944. remark:value
  945. });
  946. })
  947. .then(() => {
  948. this.$router.go(-1);
  949. this.getList();
  950. this.msgSuccess("驳回成功");
  951. });
  952. },
  953. handleChange(file, fileList){
  954. console.log(file, fileList)
  955. },
  956. beforeAvatarUpload(file) {
  957. console.log(file);
  958. },
  959. submitUpload() {
  960. this.$refs.upload.submit();
  961. },
  962. //施工许可证
  963. submitUploaduccpermit() {
  964. console.log(34);
  965. this.$refs.uploadone.submit();
  966. },
  967. //施工合同
  968. submitUploaduccontract() {
  969. this.$refs.uploadtwo.submit();
  970. },
  971. handleRemove(file) {
  972. console.log(file);
  973. },
  974. //开工合同
  975. handleSucc(response, file, fileList) {
  976. console.log(file.response.url);
  977. this.onstruction.push(file.response.url);
  978. this.queryParamstwr.constructionPhoto = this.onstruction.join(",");
  979. },
  980. //施工许可证照片
  981. handleSuccpermit(response, file, fileList) {
  982. console.log(file.response.url);
  983. this.permit.push(file.response.url);
  984. this.queryParamstwr.constructionCode = this.permit.join(",");
  985. },
  986. //施工合同
  987. handleSuccontract(response, file, fileList) {
  988. // this.ontract = []
  989. this.ontract.push(file.response.url);
  990. this.queryParamstwr.constructionDoc = this.ontract.join(",");
  991. },
  992. // 入统截图
  993. handleSuccntry(response, file, fileList) {
  994. // this.ontract = []
  995. this.ntry.push(file.response.url);
  996. this.queryParamstheyr.statisticsPhoto = this.ntry.join(",");
  997. },
  998. handlePictureCardPreview(file) {
  999. this.dialogImageUrl = file.url;
  1000. this.dialogVisible = true;
  1001. },
  1002. handleDownload(file) {
  1003. console.log(file);
  1004. },
  1005. handleRemovetwo(file, fileList) {
  1006. console.log(file, fileList);
  1007. },
  1008. handlePreviewtwo(file) {
  1009. console.log(file);
  1010. },
  1011. handleExceedtwo(files, fileList) {
  1012. this.$message.warning(
  1013. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
  1014. files.length + fileList.length
  1015. } 个文件`
  1016. );
  1017. },
  1018. beforeRemovetwo(file, fileList) {
  1019. return this.$confirm(`确定移除 ${file.name}?`);
  1020. },
  1021. submitUploadther() {
  1022. this.$refs.upload.submit();
  1023. },
  1024. handleRemovether(file, fileList) {
  1025. // console.log(file, fileList);
  1026. },
  1027. handlePreviewther(file) {
  1028. console.log(file, 45);
  1029. },
  1030. handleSuccther(response, file, fileList) {
  1031. // let imges = []
  1032. this.imagese.push(file.response.url);
  1033. console.log(this.imagese.join(","), 345);
  1034. if (this.numhu == 0) {
  1035. this.form.photo = this.imagese.join(",");
  1036. } else if (this.numhu == 1) {
  1037. this.formtwo.photo = this.imagese.join(",");
  1038. } else if (this.numhu == 2) {
  1039. this.formther.photo = this.imagese.join(",");
  1040. }
  1041. console.log(this.form.photo);
  1042. if (file.response.code == 200) {
  1043. this.msgSuccess("上传成功");
  1044. }
  1045. console.log(response.url, file, fileList);
  1046. },
  1047. /** 查询参数列表 */
  1048. getList() {
  1049. this.loading = true;
  1050. listConfigfive(this.bmProjectId).then((response) => {
  1051. this.fileListther = [];
  1052. this.fileListfour = [];
  1053. this.fileListfive = [];
  1054. // this.ermit = []
  1055. if (response.data.id !== null) {
  1056. //修改
  1057. this.queryParamstwr = response.data;
  1058. this.modify = 1;
  1059. if (this.queryParamstwr.constructionCode !== null) {
  1060. this.ermit = this.queryParamstwr.constructionCode.split(",");
  1061. console.log(this.ermit, 90);
  1062. for (var i = 0; i < this.ermit.length; i++) {
  1063. this.fileListther.push({
  1064. name: this.ermit[i],
  1065. url: this.ermit[i],
  1066. });
  1067. }
  1068. }
  1069. if (this.queryParamstwr.constructionDoc !== null) {
  1070. this.ontractr = this.queryParamstwr.constructionDoc.split(",");
  1071. console.log(this.ontractr, 80);
  1072. for (var i = 0; i < this.ontractr.length; i++) {
  1073. this.fileListfour.push({
  1074. name: this.ontractr[i],
  1075. url: this.ontractr[i],
  1076. });
  1077. }
  1078. }
  1079. if (this.queryParamstwr.constructionPhoto !== null) {
  1080. this.ruction = this.queryParamstwr.constructionPhoto.split(",");
  1081. console.log(this.ruction, 70);
  1082. for (var i = 0; i < this.ruction.length; i++) {
  1083. this.fileListfive.push({
  1084. name: this.ruction[i],
  1085. url: this.ruction[i],
  1086. });
  1087. }
  1088. }
  1089. } else {
  1090. //新增
  1091. this.queryParamstwr = {};
  1092. this.queryParamstwr.orderBeginTime = response.data.orderBeginTime
  1093. this.queryParamstwr.orderEndTime = response.data.orderEndTime
  1094. this.modify = 0;
  1095. }
  1096. this.total = response.total;
  1097. this.loading = false;
  1098. });
  1099. },
  1100. //开工图片列表
  1101. getListtoi() {
  1102. this.loading = true;
  1103. this.queryParamstwrction.bmProjectId = this.bmProjectId
  1104. listConfigsix(this.queryParamstwrction).then((response) => {
  1105. this.configList = response.rows;
  1106. this.configList.filter((route) => {
  1107. if (route.photo !== null) {
  1108. let poku = [];
  1109. poku = route.photo.split(",");
  1110. route.photo = route.photo.split(",");
  1111. route.phototwo = route.photo[0];
  1112. console.log(route.phototwo);
  1113. console.log(route.photo);
  1114. // route.photo = []
  1115. // for(var i = 0; i < poku.length; i++){
  1116. // route.photo.push({name:poku[i],ulr:poku[i]})
  1117. // }
  1118. }
  1119. });
  1120. this.totaltwo = response.total;
  1121. this.loading = false;
  1122. });
  1123. },
  1124. //设备安装接口
  1125. getListther() {
  1126. this.loading = true;
  1127. listConfigserve(this.queryParamsstallation).then((response) => {
  1128. this.configListher = response.rows;
  1129. this.configListher.filter((route) => {
  1130. if (route.photo !== null) {
  1131. let poku = [];
  1132. poku = route.photo.split(",");
  1133. route.photo = route.photo.split(",");
  1134. route.phototwo = route.photo[0];
  1135. console.log(route.phototwo);
  1136. console.log(route.photo);
  1137. }
  1138. });
  1139. this.totalth = response.total;
  1140. this.loading = false;
  1141. });
  1142. },
  1143. //项目到资列表接口
  1144. getListfour() {
  1145. this.loading = true;
  1146. listConfigfunding(this.queryParams).then((response) => {
  1147. this.configLisfour = response.rows;
  1148. this.configLisfour.filter((route) => {
  1149. if (route.photo !== null) {
  1150. let poku = [];
  1151. poku = route.photo.split(",");
  1152. route.photo = route.photo.split(",");
  1153. route.phototwo = route.photo[0];
  1154. console.log(route.phototwo);
  1155. console.log(route.photo);
  1156. }
  1157. });
  1158. this.total = response.total;
  1159. this.loading = false;
  1160. });
  1161. },
  1162. //项目到资查看接口
  1163. getListfive() {
  1164. this.loading = true;
  1165. listConfigarrival(this.bmjdeu).then((response) => {
  1166. if (response.data !== undefined) {
  1167. this.queryParamstwo = response.data;
  1168. } else {
  1169. }
  1170. this.loading = false;
  1171. });
  1172. },
  1173. //项目入统查看接口
  1174. getListsix() {
  1175. this.loading = true;
  1176. listConfigintegration(this.bmProjectId).then((response) => {
  1177. this.fileListthertwo = [];
  1178. if (response.data !== undefined) {
  1179. //修改
  1180. this.udgment = 1;
  1181. this.queryParamstheyr = response.data;
  1182. if (this.queryParamstheyr.statisticsPhoto !== null) {
  1183. this.udgmentList = this.queryParamstheyr.statisticsPhoto.split(",");
  1184. for (var i = 0; i < this.udgmentList.length; i++) {
  1185. this.fileListthertwo.push({
  1186. name: this.udgmentList[i],
  1187. url: this.udgmentList[i],
  1188. });
  1189. }
  1190. }
  1191. } else {
  1192. //新增
  1193. this.udgment = 0;
  1194. }
  1195. this.loading = false;
  1196. });
  1197. },
  1198. // 参数系统内置字典翻译
  1199. typeFormat(row, column) {
  1200. return this.selectDictLabel(this.typeOptions, row.configType);
  1201. },
  1202. // 取消按钮
  1203. cancel() {
  1204. this.open = false;
  1205. this.opentwo = false;
  1206. this.openther = false;
  1207. this.reset();
  1208. },
  1209. // 表单重置
  1210. reset() {
  1211. this.form = {
  1212. configId: undefined,
  1213. configName: undefined,
  1214. configKey: undefined,
  1215. configValue: undefined,
  1216. configType: "Y",
  1217. remark: undefined,
  1218. };
  1219. this.resetForm("form");
  1220. },
  1221. resettwo() {
  1222. this.form = {
  1223. // configId: undefined,
  1224. // configName: undefined,
  1225. // configKey: undefined,
  1226. // configValue: undefined,
  1227. // configType: "Y",
  1228. // remark: undefined
  1229. };
  1230. this.resetForm("formtwo");
  1231. },
  1232. /** 搜索按钮操作 */
  1233. handleQuery() {
  1234. this.queryParams.pageNum = 1;
  1235. this.getList();
  1236. },
  1237. /** 重置按钮操作 */
  1238. resetQuery() {
  1239. this.dateRange = [];
  1240. this.resetForm("queryForm");
  1241. this.handleQuery();
  1242. },
  1243. /** 新增按钮操作 */
  1244. handleAdd(index) {
  1245. this.numhu = index;
  1246. this.reset();
  1247. this.fileListtherrt = []
  1248. if (this.numhu == 0) {
  1249. this.open = true;
  1250. } else if (this.numhu == 2) {
  1251. this.openther = true;
  1252. }
  1253. this.title = "添加参数";
  1254. },
  1255. // 多选框选中数据
  1256. handleSelectionChange(selection) {
  1257. this.ids = selection.map((item) => item.configId);
  1258. this.single = selection.length != 1;
  1259. this.multiple = !selection.length;
  1260. },
  1261. /** 修改按钮操作 */
  1262. handleUpdate(row) {
  1263. this.reset();
  1264. const configId = row.configId || this.ids;
  1265. getConfig(configId).then((response) => {
  1266. this.form = response.data;
  1267. this.open = true;
  1268. this.title = "修改参数";
  1269. });
  1270. },
  1271. /** 提交按钮 */
  1272. submitForm: function () {
  1273. this.form.bmProjectId = this.bmProjectId;
  1274. this.formtwo.bmProjectId = this.bmProjectId;
  1275. this.formther.bmProjectId = this.bmProjectId;
  1276. console.log(this.numhu);
  1277. if (this.numhu == 0) {
  1278. this.$refs["form"].validate((valid) => {
  1279. if (valid) {
  1280. if(this.form.rateType == undefined){
  1281. this.msgSuccess("请选择进度");
  1282. return false
  1283. }
  1284. if(this.form.photo == undefined){
  1285. this.msgSuccess("请上传照片");
  1286. return false
  1287. }
  1288. addConfigther(this.form).then((response) => {
  1289. this.msgSuccess("新增成功");
  1290. this.open = false;
  1291. this.getListtoi();
  1292. });
  1293. }
  1294. });
  1295. } else if (this.numhu == 1) {
  1296. this.$refs["formtwo"].validate((valid) => {
  1297. if (valid) {
  1298. if(this.formtwo.eqType == undefined){
  1299. this.msgSuccess("请选择进度");
  1300. return false
  1301. }
  1302. if(this.formtwo.photo == undefined){
  1303. this.msgSuccess("请上传照片");
  1304. return false
  1305. }
  1306. addConfigfour(this.formtwo).then((response) => {
  1307. this.msgSuccess("新增成功");
  1308. this.opentwo = false;
  1309. this.getListther();
  1310. });
  1311. }
  1312. });
  1313. } else if (this.numhu == 2) {
  1314. console.log("步骤3");
  1315. this.$refs["formther"].validate((valid) => {
  1316. if (valid) {
  1317. if(this.formther.payForType == undefined){
  1318. this.msgSuccess("请选择进度");
  1319. return false
  1320. }
  1321. if(this.formther.payForMoney == undefined){
  1322. this.msgSuccess("请输入到资金额");
  1323. return false
  1324. }
  1325. if(this.formther.photo == undefined){
  1326. this.msgSuccess("请上传照片");
  1327. return false
  1328. }
  1329. addConfigfiv(this.formther).then((response) => {
  1330. this.msgSuccess("新增成功");
  1331. this.openther = false;
  1332. this.getListfour();
  1333. this.getListfive()
  1334. });
  1335. }
  1336. });
  1337. }
  1338. },
  1339. //项目施工提交按钮
  1340. submitCtion() {
  1341. this.queryParamstheyr.bmProjectId = this.bmProjectId
  1342. // this.formther.bmProjectId = this.bmProjectId
  1343. // console.log(this.numhu);
  1344. console.log(this.tab,this.modify)
  1345. if (this.tab == 0) {
  1346. this.$refs["queryForm"].validate((valid) => {
  1347. if (valid) {
  1348. // if(this.queryParamstwr.constructionCode == ''){
  1349. // this.msgSuccess("请上传施工许可证");
  1350. // return false
  1351. // }
  1352. if (this.modify == 1) {
  1353. if(this.queryParamstwr.constructionCode == null){
  1354. this.msgSuccess("请上传施工许可证");
  1355. return false
  1356. }
  1357. if(this.queryParamstwr.isConstruction == "Y"){
  1358. console.log(this.queryParamstwr.isConstruction)
  1359. if(this.queryParamstwr.constructionEnddate == null){
  1360. this.msgSuccess("请选择预计完工日期");
  1361. return false
  1362. }
  1363. if(this.queryParamstwr.constructionStartdate == null){
  1364. this.msgSuccess("请选择开工日期");
  1365. return false
  1366. }
  1367. }
  1368. if(this.queryParamstwr.constructionDoc == null){
  1369. this.msgSuccess("请上传施工施工合同");
  1370. return false
  1371. }
  1372. if(this.queryParamstwr.constructionPhoto == null){
  1373. this.msgSuccess("请上传开工合同");
  1374. return false
  1375. }
  1376. //修改
  1377. updateConfigatruction(this.queryParamstwr).then((response) => {
  1378. this.msgSuccess("修改成功");
  1379. this.open = false;
  1380. this.getListtoi();
  1381. this.handleAudit()
  1382. // this.$router.go(-1);
  1383. });
  1384. } else if (this.modify == 0) {
  1385. if(this.queryParamstwr.isConstruction == "Y"){
  1386. if(this.queryParamstwr.constructionEnddate == undefined){
  1387. this.msgSuccess("请选择预计完工日期");
  1388. return false
  1389. }
  1390. if(this.queryParamstwr.constructionStartdate == undefined){
  1391. this.msgSuccess("请选择开工日期");
  1392. return false
  1393. }
  1394. }
  1395. if(this.queryParamstwr.constructionCode == undefined){
  1396. this.msgSuccess("请上传施工许可证");
  1397. return false
  1398. }
  1399. if(this.queryParamstwr.constructionDoc == undefined){
  1400. this.msgSuccess("请上传施工施工合同");
  1401. return false
  1402. }
  1403. if(this.queryParamstwr.constructionPhoto == undefined){
  1404. this.msgSuccess("请上传开工合同");
  1405. return false
  1406. }
  1407. //新增
  1408. this.queryParamstwr.bmProjectId = this.bmProjectId;
  1409. console.log(this.queryParamstwr.bmProjectId)
  1410. addConfigtherction(this.queryParamstwr).then((response) => {
  1411. this.msgSuccess("新增成功");
  1412. this.open = false;
  1413. this.getListtoi();
  1414. this.handleAudit()
  1415. // this.$router.go(-1);
  1416. });
  1417. }
  1418. }
  1419. });
  1420. } else if (this.tab == 3) {
  1421. this.$refs["queryFormtwo"].validate((valid) => {
  1422. if (valid) {
  1423. if (this.udgment == 1) {
  1424. if(this.queryParamstheyr.statisticsDate == null){
  1425. this.msgSuccess("请选择入统日期");
  1426. return false
  1427. }
  1428. if(this.queryParamstheyr.statisticsPhoto == null){
  1429. this.msgSuccess("请上传入统截图");
  1430. return false
  1431. }
  1432. //修改
  1433. updateConfigntegration(this.queryParamstheyr).then((response) => {
  1434. this.msgSuccess("修改成功");
  1435. this.open = false;
  1436. // this.getListtoi();
  1437. this.handleAudit()
  1438. this.$router.go(-1);
  1439. });
  1440. } else {
  1441. if(this.queryParamstheyr.statisticsDate == undefined){
  1442. this.msgSuccess("请选择入统日期");
  1443. return false
  1444. }
  1445. if(this.queryParamstheyr.statisticsPhoto == undefined){
  1446. this.msgSuccess("请上传入统截图");
  1447. return false
  1448. }
  1449. this.queryParamstheyr.bmProjectId = this.bmProjectId;
  1450. console.log(this.queryParamstheyr.bmProjectId,98)
  1451. addConfigsix(this.queryParamstheyr).then((response) => {
  1452. this.msgSuccess("新增成功");
  1453. this.opentwo = false;
  1454. this.handleAudit()
  1455. // this.getListther();
  1456. // this.$router.go(-1);
  1457. });
  1458. }
  1459. }
  1460. });
  1461. }
  1462. },
  1463. /** 开工照片删除按钮操作 */
  1464. handleDelete(row) {
  1465. const configIds = row.id;
  1466. this.$confirm(
  1467. '是否确认删除"' + configIds + '"的数据项?',
  1468. "警告",
  1469. {
  1470. confirmButtonText: "确定",
  1471. cancelButtonText: "取消",
  1472. type: "warning",
  1473. }
  1474. )
  1475. .then(function () {
  1476. return delConfigther(configIds);
  1477. })
  1478. .then(() => {
  1479. this.getListtoi();
  1480. this.msgSuccess("删除成功");
  1481. });
  1482. },
  1483. //设备安装删除
  1484. handleDeletetwo(row) {
  1485. const configIds = row.id;
  1486. this.$confirm(
  1487. '是否确认删除"' + configIds + '"的数据项?',
  1488. "警告",
  1489. {
  1490. confirmButtonText: "确定",
  1491. cancelButtonText: "取消",
  1492. type: "warning",
  1493. }
  1494. )
  1495. .then(function () {
  1496. return delConfigfour(configIds);
  1497. })
  1498. .then(() => {
  1499. this.getListther();
  1500. this.msgSuccess("删除成功");
  1501. });
  1502. },
  1503. //项目到资删除
  1504. handleDeletether(row) {
  1505. const configIds = row.id;
  1506. this.$confirm(
  1507. '是否确认删除"' + configIds + '"的数据项?',
  1508. "警告",
  1509. {
  1510. confirmButtonText: "确定",
  1511. cancelButtonText: "取消",
  1512. type: "warning",
  1513. }
  1514. )
  1515. .then(function () {
  1516. return delConfigfive(configIds);
  1517. })
  1518. .then(() => {
  1519. this.getListfour();
  1520. this.msgSuccess("删除成功");
  1521. });
  1522. },
  1523. /** 导出按钮操作 */
  1524. handleExport() {
  1525. const queryParams = this.queryParams;
  1526. this.$confirm("是否确认导出所有参数数据项?", "警告", {
  1527. confirmButtonText: "确定",
  1528. cancelButtonText: "取消",
  1529. type: "warning",
  1530. })
  1531. .then(function () {
  1532. return exportConfig(queryParams);
  1533. })
  1534. .then((response) => {
  1535. this.download(response.msg);
  1536. });
  1537. },
  1538. /** 清理缓存按钮操作 */
  1539. handleClearCache() {
  1540. clearCache().then((response) => {
  1541. this.msgSuccess("清理成功");
  1542. });
  1543. },
  1544. //tab
  1545. tabClid(index) {
  1546. this.tab = index;
  1547. if (this.tab == 1) {
  1548. this.getListther();
  1549. } else if (this.tab == 0) {
  1550. this.getList();
  1551. this.getListtoi();
  1552. } else if (this.tab == 2) {
  1553. this.getListfour();
  1554. this.getListfive();
  1555. } else if (this.tab == 3) {
  1556. this.getListsix();
  1557. }
  1558. // this.$router.push('/tab');
  1559. },
  1560. //下一页点击
  1561. nextYg() {
  1562. this.tab = this.tab + 1;
  1563. if (this.tab == 2) {
  1564. this.getListfour();
  1565. this.getListfive();
  1566. } else if (this.tab == 3) {
  1567. this.getListsix();
  1568. }
  1569. },
  1570. quipment(index) {
  1571. this.resettwo();
  1572. this.numhu = index;
  1573. this.fileListtherrt = []
  1574. this.opentwo = true;
  1575. this.titletwo = "添加参数";
  1576. },
  1577. //取消
  1578. handleUpdatex() {
  1579. this.$router.go(-1);
  1580. },
  1581. //确认审核
  1582. handleAudit() {
  1583. console.log(23)
  1584. // this.msgSuccess("请点击暂存按钮,返回上级页面进行提交");
  1585. this.queryFormhye.code = 1;
  1586. this.queryFormhye.bmProjectId = this.bmProjectId;
  1587. setExamine(this.queryFormhye).then((response) => {
  1588. // setExamine addConfigbout
  1589. console.log(response);
  1590. this.msgSuccess("提交成功");
  1591. this.$router.go(-1);
  1592. // 就可以回到上一页。
  1593. // this.open = false;
  1594. // this.getListtwo();
  1595. });
  1596. // console.log(this.queryParams)
  1597. },
  1598. },
  1599. };
  1600. </script>
  1601. <style rel="stylesheet/scss" lang="scss" scoped>
  1602. .roiyy {
  1603. position: fixed;
  1604. top: 95px;
  1605. left: 0;
  1606. width: 100%;
  1607. padding-left: 230px;
  1608. padding-right: 30px;
  1609. box-sizing: border-box;
  1610. z-index: 100;
  1611. }
  1612. .buiy {
  1613. // width: 75px !important;
  1614. // height: 30px !important;
  1615. // line-height: 30px !important;
  1616. }
  1617. .ijeut {
  1618. display: flex;
  1619. height: 78px;
  1620. align-items: center;
  1621. }
  1622. .burert {
  1623. .el-upload--picture-card {
  1624. height: 78px;
  1625. line-height: 78px;
  1626. width: 80px;
  1627. vertical-align: center;
  1628. border: 0 !important;
  1629. background-color: #fff;
  1630. }
  1631. .el-upload-list--picture-card .el-upload-list__item {
  1632. height: 78px !important;
  1633. width: 78px !important;
  1634. }
  1635. }
  1636. .manager_form {
  1637. .manager_lab {
  1638. .el-form-item__label {
  1639. width: 145px !important;
  1640. }
  1641. }
  1642. .maneg_lar {
  1643. position: relative;
  1644. .el-form-item__label {
  1645. width: 134px !important;
  1646. }
  1647. span {
  1648. position: absolute;
  1649. left: -95%;
  1650. }
  1651. }
  1652. .manager_labtwo {
  1653. .el-form-item__label {
  1654. width: 244px !important;
  1655. }
  1656. }
  1657. // .manager_labthre {
  1658. // // .el-form-item{
  1659. // .el-form-item__label {
  1660. // width: 130px !important;
  1661. // }
  1662. // margin-right: 40px !important;
  1663. // // }
  1664. // }
  1665. .ieuyr {
  1666. .el-textarea__inner {
  1667. height: 80px !important;
  1668. }
  1669. }
  1670. // .mage_ter {
  1671. // .el-form-item__label {
  1672. // width: 543px !important;
  1673. // }
  1674. // }
  1675. .maget_ty {
  1676. .el-form-item__label {
  1677. width: 140px !important;
  1678. }
  1679. }
  1680. .forieu {
  1681. border: 1px solid #dcdfe6;
  1682. border-radius: 4px;
  1683. width: 480px;
  1684. height: 100px !important;
  1685. position: relative;
  1686. .bure {
  1687. display: flex;
  1688. // position: absolute;
  1689. // height: 100%;
  1690. // right: 20px;
  1691. // top: 50%;
  1692. // transform: translateY(-50%);
  1693. padding: 10px 0;
  1694. }
  1695. .burert {
  1696. display: flex;
  1697. position: absolute;
  1698. height: 100%;
  1699. left: 20px;
  1700. top: 50%;
  1701. transform: translateY(-50%);
  1702. }
  1703. }
  1704. }
  1705. .lage_div {
  1706. padding-left: 15px;
  1707. display: flex;
  1708. align-items: center;
  1709. margin-bottom: 22px;
  1710. .el-form-item {
  1711. margin-bottom: 0 !important;
  1712. }
  1713. }
  1714. .app-conta {
  1715. .header {
  1716. padding-left: 22px;
  1717. height: 45px;
  1718. line-height: 40px;
  1719. background-color: #f1f1f1;
  1720. font-size: 18px;
  1721. color: #343434;
  1722. margin-bottom: 40px;
  1723. }
  1724. .nauer {
  1725. .nuae_wtu {
  1726. display: flex;
  1727. justify-content: center;
  1728. align-content: center;
  1729. .naue_one {
  1730. width: 30%;
  1731. p {
  1732. font-size: 12px;
  1733. font-family: PingFang SC;
  1734. font-weight: 400;
  1735. color: #343434;
  1736. }
  1737. .naue_name {
  1738. font-size: 14px;
  1739. font-family: PingFang SC;
  1740. font-weight: bold;
  1741. color: #0669b2;
  1742. margin-bottom: 30px;
  1743. }
  1744. }
  1745. .naue_two {
  1746. flex: 1;
  1747. padding-top: 20px;
  1748. // display: flex;
  1749. // align-items: center;
  1750. // justify-content: center;
  1751. }
  1752. }
  1753. //tab
  1754. .naue_tab {
  1755. border-bottom: 1px solid #cdcdcd;
  1756. display: flex;
  1757. margin-top: 30px;
  1758. padding: 0 10px;
  1759. margin-bottom: 30px;
  1760. p {
  1761. font-size: 12px;
  1762. font-family: PingFang SC;
  1763. font-weight: 400;
  1764. color: #343434;
  1765. padding: 11px 15px;
  1766. margin: 0;
  1767. }
  1768. .p {
  1769. border-bottom: 2px solid #1c84c6;
  1770. margin-bottom: -1px;
  1771. }
  1772. }
  1773. .mation {
  1774. .enterprise {
  1775. font-size: 14px;
  1776. font-family: PingFang SC;
  1777. font-weight: bold;
  1778. color: #1c84c6;
  1779. margin-top: 25px;
  1780. margin-bottom: 20px;
  1781. }
  1782. .enterprise_tw {
  1783. i {
  1784. margin-right: 5px;
  1785. }
  1786. font-size: 14px;
  1787. font-family: PingFang SC;
  1788. font-weight: 600;
  1789. color: #666666;
  1790. }
  1791. }
  1792. }
  1793. .nvestor {
  1794. margin-bottom: 10px;
  1795. p {
  1796. margin: 0;
  1797. font-size: 14px;
  1798. font-family: PingFang SC;
  1799. font-weight: bold;
  1800. color: #343434;
  1801. height: 24px;
  1802. line-height: 24px;
  1803. border-left: 3px solid #1c84c6;
  1804. padding-left: 13px;
  1805. i {
  1806. color: red;
  1807. }
  1808. }
  1809. }
  1810. .souu {
  1811. font-size: 14px;
  1812. font-family: PingFang SC;
  1813. font-weight: 400;
  1814. color: #343434;
  1815. margin-left: 5px;
  1816. }
  1817. }
  1818. //在建项目
  1819. .nstruction {
  1820. display: flex;
  1821. align-items: center;
  1822. .nstruction_nav {
  1823. display: flex;
  1824. align-items: center;
  1825. p:nth-child(1) {
  1826. margin-right: 10px;
  1827. span {
  1828. font-size: 14px;
  1829. font-family: PingFang SC;
  1830. font-weight: bold;
  1831. color: #343434;
  1832. }
  1833. span:nth-child(1) {
  1834. color: #df0024;
  1835. }
  1836. }
  1837. p:nth-child(2) {
  1838. width: 233px;
  1839. height: 30px;
  1840. line-height: 30px;
  1841. border: 1px solid #cdcdcd;
  1842. border-radius: 3px;
  1843. padding-left: 14px;
  1844. }
  1845. }
  1846. .nstruction_navne {
  1847. margin-left: 50px;
  1848. display: flex;
  1849. align-items: center;
  1850. p:nth-child(1) {
  1851. margin-right: 10px;
  1852. span {
  1853. font-size: 14px;
  1854. font-family: PingFang SC;
  1855. font-weight: bold;
  1856. color: #343434;
  1857. }
  1858. span:nth-child(1) {
  1859. color: #df0024;
  1860. }
  1861. }
  1862. p:nth-child(2) {
  1863. width: 233px;
  1864. height: 30px;
  1865. line-height: 30px;
  1866. border: 1px solid #cdcdcd;
  1867. border-radius: 3px;
  1868. padding-left: 14px;
  1869. }
  1870. }
  1871. }
  1872. .kaieu {
  1873. padding-left: 60px;
  1874. font-size: 14px;
  1875. font-family: PingFang SC;
  1876. font-weight: 800;
  1877. color: #343434;
  1878. }
  1879. .kaieu_tw {
  1880. padding-left: 60px;
  1881. font-size: 14px;
  1882. font-family: PingFang SC;
  1883. font-weight: 500;
  1884. color: #666666;
  1885. }
  1886. </style>