5aca30ab8efbc87430e7b6028b8266888a64d6ef.svn-base 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319
  1. <template>
  2. <div style="height:100%;width:100%;">
  3. <el-container style="height:100%;width:100%;">
  4. <!-- <el-aside width="320px" style="border-right:2px solid #d5d5ff;float:left" :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  5. <span style="display: flex;justify-content: center;align-items: center;border-bottom: 1px solid #ebeef5;">
  6. <el-button size="mini" :class="tabType==1 ? 'skactive' : 'sknormal'" @click="tabChange('1')">当前数据</el-button>
  7. <el-button size="mini" :class="tabType==2 ? 'skactive' : 'sknormal'" @click="tabChange('2')">历史数据</el-button>
  8. <el-button size="mini" :class="tabType==0 ? 'skactive' : 'sknormal'" @click="tabChange('0')">全部数据</el-button>
  9. </span>
  10. <div class="tree" style="
  11. height: calc(100% - 50px);
  12. width: 100%;
  13. overflow: auto;
  14. display: inline-flex;">
  15. <el-tree
  16. :highlight-current="true"
  17. style="height:100%;"
  18. :data="treeData"
  19. node-key="id"
  20. :expand-on-click-node="false"
  21. @node-click = 'treeNodeClickHandler'
  22. ref="jigou_tree"
  23. >
  24. <div class="custom-tree-node" slot-scope="{ node, data }">
  25. <span style="float:left;">{{ data.pnm}}
  26. </span>
  27. </div>
  28. </el-tree>
  29. </div>
  30. </el-aside> -->
  31. <!-- 主要窗口 -->
  32. <el-main id="dxdcListMainsk" style="padding:5px 20px;">
  33. <el-row>
  34. <el-col :span="24">
  35. <el-form :inline="true" size="mini" class="demo-form-inline" style="padding-left: 10px;">
  36. <el-form-item label="督查状态">
  37. <el-select v-model="dcType" clearable placeholder="督查状态">
  38. <el-option label="未督查" value="0"></el-option>
  39. <el-option label="督查中" value="1"></el-option>
  40. <el-option label="已督查" value="2"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="行政区名称">
  44. <addvSearch
  45. v-model="adName"
  46. :maxHeight='300'
  47. :maxWidth='250'
  48. :rootAddCode='curAdcode_long'
  49. :level='"3"'
  50. :nameOrCode="'name'"
  51. ></addvSearch>
  52. </el-form-item>
  53. <el-form-item label="对象名称">
  54. <el-input v-model="depName" placeholder="对象名称"></el-input>
  55. </el-form-item>
  56. <!-- <el-form-item label="所在组">
  57. <el-autocomplete v-model="groupName" clearable value-key='nm' :fetch-suggestions="querySearchAsync" placeholder="请输入内容"
  58. @select="handleSelect"></el-autocomplete>
  59. </el-form-item> -->
  60. <el-form-item label="督查时间">
  61. <div style="display: flex;">
  62. <el-date-picker
  63. v-model="dateRange"
  64. type="daterange"
  65. value-format="yyyy-MM-dd"
  66. style="width:280px"
  67. range-separator="至"
  68. start-placeholder="开始日期"
  69. end-placeholder="结束日期"
  70. ></el-date-picker>
  71. </div>
  72. </el-form-item>
  73. <el-form-item>
  74. <el-button type="primary" @click="onSubmit" icon="el-icon-search">查询</el-button>
  75. </el-form-item>
  76. </el-form>
  77. </el-col>
  78. </el-row>
  79. <el-table
  80. ref="table"
  81. border
  82. :height="tableHeight"
  83. :data="skDataList"
  84. style="width: 100%"
  85. v-loading="expLoading">
  86. <el-table-column prop="adName" label="行政区划" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  87. <el-table-column prop="nm" label="工程名称" show-overflow-tooltip min-width="80" align="center" fixed="left"></el-table-column>
  88. <el-table-column prop="sceneScore" label="施工现场布置得分" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="70" align="center" ></el-table-column>
  89. <el-table-column prop="tmprScore" label="临时工程得分" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="70" align="center" ></el-table-column>
  90. <el-table-column prop="safScore" label="安全文明施工得分" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="70" align="center" ></el-table-column>
  91. <el-table-column prop="standardTotal" label="工地应计总分" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="70" align="center" ></el-table-column>
  92. <el-table-column prop="standardScore" label="工地得分" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="80" align="center" ></el-table-column>
  93. <el-table-column prop="standardRate" label="工地得分率(%)" v-if="ownPriv('isGdExpert')" show-overflow-tooltip min-width="90" align="center" ></el-table-column>
  94. <el-table-column prop="pbScore" label="党建得分" v-if="ownPriv('isDjExpert')" show-overflow-tooltip min-width="80" align="center" ></el-table-column>
  95. <el-table-column prop="actualScore" label="总分" v-if="ownPriv('isGdExpert') || ownPriv('isDjExpert')" show-overflow-tooltip min-width="80" align="center" ></el-table-column>
  96. <el-table-column prop="groupName" label="所在组" show-overflow-tooltip min-width="80" align="center"></el-table-column>
  97. <el-table-column prop="intm1" label="督查时间" show-overflow-tooltip min-width="100" align="center"></el-table-column>
  98. <!-- <el-table-column prop="uptm" label="更新时间" align="center" :formatter="formatDate" min-width="100"></el-table-column>-->
  99. <!-- <el-table-column-->
  100. <!-- prop="sceneState"-->
  101. <!-- label="施工现场布置状态"-->
  102. <!-- align="center"-->
  103. <!-- min-width="200">-->
  104. <!-- <template slot-scope="scope">-->
  105. <!-- <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.sceneState == 0 || !scope.row.sceneState">待填报</p>-->
  106. <!-- <p style="cursor:pointer;color:#fbb56d" v-if="scope.row.sceneState == 1">未完成</p>-->
  107. <!-- <p style="cursor:pointer;color:#67C23A" v-if="scope.row.sceneState == 2">已完成</p>-->
  108. <!-- </template>-->
  109. <!-- </el-table-column>-->
  110. <!-- <el-table-column-->
  111. <!-- prop="tmprState"-->
  112. <!-- label="临时工程状态"-->
  113. <!-- align="center"-->
  114. <!-- min-width="150">-->
  115. <!-- <template slot-scope="scope">-->
  116. <!-- <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.tmprState == 0 || !scope.row.tmprState">待填报</p>-->
  117. <!-- <p style="cursor:pointer;color:#fbb56d" v-if="scope.row.tmprState == 1">未完成</p>-->
  118. <!-- <p style="cursor:pointer;color:#67C23A" v-if="scope.row.tmprState == 2">已完成</p>-->
  119. <!-- </template>-->
  120. <!-- </el-table-column>-->
  121. <!-- <el-table-column-->
  122. <!-- prop="safState"-->
  123. <!-- label="安全文明施工"-->
  124. <!-- align="center"-->
  125. <!-- min-width="150">-->
  126. <!-- <template slot-scope="scope">-->
  127. <!-- <p style="cursor:pointer;color:#F56C6C;" v-if="scope.row.safState == 0 || !scope.row.safState">待填报</p>-->
  128. <!-- <p style="cursor:pointer;color:#fbb56d" v-if="scope.row.safState == 1">未完成</p>-->
  129. <!-- <p style="cursor:pointer;color:#67C23A" v-if="scope.row.safState == 2">已完成</p>-->
  130. <!-- </template>-->
  131. <!-- </el-table-column>-->
  132. <el-table-column
  133. prop="state"
  134. label="督查状态"
  135. align="center"
  136. min-width="80">
  137. <template slot-scope="scope">
  138. <span
  139. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  140. v-if="scope.row.state == 0"
  141. >未填报</span>
  142. <span
  143. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  144. v-if="scope.row.state == 1"
  145. >填报中</span>
  146. <span
  147. style="padding: 3px 10px;background:#63C25E;border-radius:15px;color:rgba(255,255,255,1)"
  148. v-if="scope.row.state == 2"
  149. >已填报</span>
  150. </template>
  151. </el-table-column>
  152. <el-table-column align="center" label="操作" min-width="220" fixed="right">
  153. <template slot-scope="scope">
  154. <div style="display: flex;justify-content: center">
  155. <div>
  156. <el-button size="mini" type="success" v-if="scope.row.rgstrId" plain @click="add(scope.row)">填报</el-button>
  157. <el-button size="mini" type="danger" v-if="scope.row.rgstrId && scope.row.state != '2'" plain @click="deleteMember(scope.row)">删除</el-button>
  158. <!-- <el-button size="mini" type="danger" v-if="scope.row.rgstrId && scope.row.state != '2'" plain @click="submitHandler(scope.row)">提交</el-button> -->
  159. </div>
  160. <el-button size="mini" type="warning" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="getDe(scope.row)">查看</el-button>
  161. <div style="padding-left: 10px;">
  162. <el-button size="mini" type="warning" v-if="scope.row.rgstrId && scope.row.state == '2'" plain @click="revoke(scope.row)">撤回</el-button>
  163. </div>
  164. </div>
  165. </template>
  166. </el-table-column>
  167. </el-table>
  168. <el-pagination background :pager-count="5" :current-page="pageIndex"
  169. :page-size="pageSize" :page-sizes="[10, 20, 30, 40, 50, 100]"
  170. layout="sizes, total, prev, pager, next" :total="total"
  171. @current-change="pageIndexChange" @size-change="handleSizeChange"
  172. ></el-pagination>
  173. </el-main>
  174. <!-- </el-container> -->
  175. <bzhgdTab v-if="showShuiKuTianBao" :rowData="rowData" :currentObjectRgstrId="currentObjectRgstrId"
  176. :currentResCode="currentResCode" :currentObjectId="currentObjectId"
  177. :currentObjectName="currentResName"
  178. :pType="pType"
  179. :currentNodeId="currentNodeId"
  180. :openType="openType"
  181. @cancelHandler="cancelHandler" @addShuiKuSuccess="addShuiKuSuccess"></bzhgdTab>
  182. </el-container>
  183. <!-- 添加/编辑人员弹窗 -->
  184. <!-- 上传模板弹窗 -->
  185. <shuiku-tian-bao-pl v-if="showShuiKuTianBaoPl"
  186. :showShuiKuTianBaoPl="showShuiKuTianBaoPl"
  187. :id="currentNodeId"
  188. @closePlDialog="closePlDialog"></shuiku-tian-bao-pl>
  189. <!-- 水库信息查看 -->
  190. <!-- 督查弹窗 -->
  191. <el-dialog
  192. title=""
  193. @close="clearForm"
  194. :visible.sync="showDuchaDialog"
  195. width="60%"
  196. center
  197. >
  198. <el-tabs v-model="activeTab" type="card" style="padding:5px 20px;">
  199. <el-tab-pane label="基本信息" name="basicInfo">
  200. <p style="margin-top:10px;margin-bottom: 10px;overflow: hidden;"><i class="el-icon-caret-right"></i><span
  201. style="width:120px;padding-left: 10px">基本信息</span><span class="hrs"></span>
  202. </p>
  203. <div>
  204. <el-form label-width="100px" style="padding: 20px 0;">
  205. <el-form-item label="工程名称">
  206. <el-input v-model="duchaForm.name" :disabled="isEdit"></el-input>
  207. </el-form-item>
  208. <el-form-item label="业务类型">
  209. <el-input v-model="duchaForm.businessType" :disabled="isEdit"></el-input>
  210. </el-form-item>
  211. <el-form-item label="工程类型">
  212. <el-input v-model="duchaForm.type" :disabled="isEdit"></el-input>
  213. </el-form-item>
  214. <el-form-item label="所在地">
  215. <el-input v-model="duchaForm.loc" :disabled="isEdit"></el-input>
  216. </el-form-item>
  217. <el-form-item label="投资金额(万元)">
  218. <el-input v-model="duchaForm.investment" :disabled="isEdit"></el-input>
  219. </el-form-item>
  220. <el-form-item label="计划工期">
  221. <el-input v-model="duchaForm.plannedDuration" :disabled="isEdit"></el-input>
  222. </el-form-item>
  223. <el-form-item label="开工令签发时间">
  224. <el-input v-model="duchaForm.startDate" :disabled="isEdit"></el-input>
  225. </el-form-item>
  226. <el-form-item label="已建 / 在建">
  227. <el-input v-model="duchaForm.status" :disabled="isEdit"></el-input>
  228. </el-form-item>
  229. <el-form-item label="管理单位">
  230. <el-input v-model="duchaForm.managementUnitName" :disabled="isEdit"></el-input>
  231. </el-form-item>
  232. <el-form-item label="联系人">
  233. <el-input v-model="duchaForm.contactPerson" :disabled="isEdit"></el-input>
  234. </el-form-item>
  235. <el-form-item label="行政区划编码">
  236. <el-input v-model="duchaForm.adCode" :disabled="isEdit"></el-input>
  237. </el-form-item>
  238. <el-form-item label="行政区划名称">
  239. <el-input v-model="duchaForm.adName" :disabled="isEdit"></el-input>
  240. </el-form-item>
  241. <el-form-item label="经度">
  242. <el-input v-model="duchaForm.centerX" :disabled="isEdit"></el-input>
  243. </el-form-item>
  244. <el-form-item label="纬度">
  245. <el-input v-model="duchaForm.centerY" :disabled="isEdit"></el-input>
  246. </el-form-item>
  247. </el-form>
  248. </div>
  249. </el-tab-pane>
  250. <el-tab-pane label="六项机制填报" name="aztb">
  251. <el-button :disabled="isEdit" style="margin-left: 1%;" type="primary" @click="showaddaz = true;isadd = true">新增填报</el-button>
  252. <el-table
  253. ref="table"
  254. border
  255. :height="tableHeight*0.5"
  256. :data="aztbDataList"
  257. style="width: 100%;margin-top: 1%;"
  258. :cell-style="{color: '#000000'}"
  259. v-loading="expLoading">
  260. <el-table-column label="查找机制" show-overflow-tooltip min-width="100" align="center">
  261. <template slot-scope="scope">
  262. <span
  263. style="padding: 3px 10px;border-radius:15px;"
  264. v-if="scope.row.search == '1'"
  265. >是</span>
  266. <span
  267. style="padding: 3px 10px;border-radius:15px;"
  268. v-if="scope.row.search == '2'"
  269. >否</span>
  270. <span
  271. style="padding: 3px 10px;border-radius:15px;"
  272. v-if="scope.row.search == null"
  273. >-</span>
  274. </template>
  275. </el-table-column>
  276. <el-table-column label="研判机制" show-overflow-tooltip min-width="100" align="center">
  277. <template slot-scope="scope">
  278. <span
  279. style="padding: 3px 10px;border-radius:15px;"
  280. v-if="scope.row.judgment == '1'"
  281. >是</span>
  282. <span
  283. style="padding: 3px 10px;border-radius:15px;"
  284. v-if="scope.row.judgment == '2'"
  285. >否</span>
  286. <span
  287. style="padding: 3px 10px;border-radius:15px;"
  288. v-if="scope.row.judgment == null"
  289. >-</span>
  290. </template>
  291. </el-table-column>
  292. <el-table-column label="预警机制" show-overflow-tooltip min-width="100" align="center">
  293. <template slot-scope="scope">
  294. <span
  295. style="padding: 3px 10px;border-radius:15px;"
  296. v-if="scope.row.earlyWarning == '1'"
  297. >是</span>
  298. <span
  299. style="padding: 3px 10px;border-radius:15px;"
  300. v-if="scope.row.earlyWarning == '2'"
  301. >否</span>
  302. <span
  303. style="padding: 3px 10px;border-radius:15px;"
  304. v-if="scope.row.earlyWarning == null"
  305. >-</span>
  306. </template>
  307. </el-table-column>
  308. <el-table-column label="防范机制" show-overflow-tooltip min-width="100" align="center">
  309. <template slot-scope="scope">
  310. <span
  311. style="padding: 3px 10px;border-radius:15px;"
  312. v-if="scope.row.prevention == '1'"
  313. >是</span>
  314. <span
  315. style="padding: 3px 10px;border-radius:15px;"
  316. v-if="scope.row.prevention == '2'"
  317. >否</span>
  318. <span
  319. style="padding: 3px 10px;border-radius:15px;"
  320. v-if="scope.row.prevention == null"
  321. >-</span>
  322. </template>
  323. </el-table-column>
  324. <el-table-column label="处置机制" show-overflow-tooltip min-width="100" align="center">
  325. <template slot-scope="scope">
  326. <span
  327. style="padding: 3px 10px;border-radius:15px;"
  328. v-if="scope.row.disposal == '1'"
  329. >是</span>
  330. <span
  331. style="padding: 3px 10px;border-radius:15px;"
  332. v-if="scope.row.disposal == '2'"
  333. >否</span>
  334. <span
  335. style="padding: 3px 10px;border-radius:15px;"
  336. v-if="scope.row.disposal == null"
  337. >-</span>
  338. </template>
  339. </el-table-column>
  340. <el-table-column label="责任机制" show-overflow-tooltip min-width="100" align="center">
  341. <template slot-scope="scope">
  342. <span
  343. style="padding: 3px 10px;border-radius:15px;"
  344. v-if="scope.row.responsibility == '1'"
  345. >是</span>
  346. <span
  347. style="padding: 3px 10px;border-radius:15px;"
  348. v-if="scope.row.responsibility == '2'"
  349. >否</span>
  350. <span
  351. style="padding: 3px 10px;border-radius:15px;"
  352. v-if="scope.row.responsibility == null"
  353. >-</span>
  354. </template>
  355. </el-table-column>
  356. <el-table-column label="状态" show-overflow-tooltip min-width="100" align="center">
  357. <template slot-scope="scope">
  358. <span
  359. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  360. v-if="scope.row.state == 0"
  361. >未完成</span>
  362. <span
  363. style="padding: 3px 10px;background:#FBB56D;border-radius:15px;color:rgba(255,255,255,1)"
  364. v-if="scope.row.state == 1"
  365. >已完成</span>
  366. </template>
  367. </el-table-column>
  368. <el-table-column align="center" label="操作" min-width="220" fixed="right">
  369. <template slot-scope="scope">
  370. <div style="display: flex;justify-content: center">
  371. <el-button :disabled="isEdit" size="mini" type="success" plain @click="editAx(scope.row)">编辑</el-button>
  372. <el-button :disabled="isEdit" size="mini" type="danger" plain @click="delAx(scope.row)">删除</el-button>
  373. </div>
  374. </template>
  375. </el-table-column>
  376. </el-table>
  377. <el-pagination style="padding: 20px 0;" background :pager-count="5" :current-page="pageIndex1"
  378. :page-size="pageSize1" :page-sizes="[10, 20, 30, 40, 50, 100]"
  379. layout="sizes, total, prev, pager, next" :total="total1"
  380. @current-change="pageIndexChange1" @size-change="handleSizeChange1"
  381. ></el-pagination>
  382. </el-tab-pane>
  383. <div slot="footer" class="dialog-footer">
  384. <el-button @click="showDuchaDialog = false">取消</el-button>
  385. <el-button :disabled="isEdit" type="primary" @click="saveDucha">保存</el-button>
  386. </div>
  387. </el-tabs>
  388. </el-dialog>
  389. <el-dialog
  390. title="六项机制填报"
  391. :visible.sync="showaddaz"
  392. width="20%"
  393. center
  394. loading="expLoading"
  395. @close="clearLabel"
  396. >
  397. <el-form :model="formObj" :label-width="formLabelWidth" :rules="rules" style="padding: 20px;">
  398. <el-form-item label="查找机制">
  399. <el-radio v-model="formObj.search" label="1">是</el-radio>
  400. <el-radio v-model="formObj.search" label="2">否</el-radio>
  401. <i v-if="formObj.search == '1'" @click="savePic('search')" class="el-icon-upload2"></i>
  402. <el-button primary size="mini" style="margin-left:3%" v-if="downList.searchUrl" @click="downloadFile(downList.searchUrl)">下载</el-button>
  403. </el-form-item>
  404. <el-form-item label="研判机制">
  405. <el-radio v-model="formObj.judgment" label="1">是</el-radio>
  406. <el-radio v-model="formObj.judgment" label="2">否</el-radio>
  407. <i v-if="formObj.judgment == '1'" @click="savePic('judgment')" class="el-icon-upload2"></i>
  408. <el-button primary size="mini" style="margin-left:3%" v-if="downList.judgmentUrl" @click="downloadFile(downList.judgmentUrl)">下载</el-button>
  409. </el-form-item>
  410. <el-form-item label="预警机制">
  411. <el-radio v-model="formObj.earlyWarning" label="1">是</el-radio>
  412. <el-radio v-model="formObj.earlyWarning" label="2">否</el-radio>
  413. <i v-if="formObj.earlyWarning == '1'" @click="savePic('earlyWarning')" class="el-icon-upload2"></i>
  414. <el-button primary size="mini" style="margin-left:3%" v-if="downList.earlyWarningUrl" @click="downloadFile(downList.earlyWarningUrl)">下载</el-button>
  415. </el-form-item>
  416. <el-form-item label="防范机制">
  417. <el-radio v-model="formObj.prevention" label="1">是</el-radio>
  418. <el-radio v-model="formObj.prevention" label="2">否</el-radio>
  419. <i v-if="formObj.prevention == '1'" @click="savePic('prevention')" class="el-icon-upload2"></i>
  420. <el-button primary size="mini" style="margin-left:3%" v-if="downList.preventionUrl" @click="downloadFile(downList.preventionUrl)">下载</el-button>
  421. </el-form-item>
  422. <el-form-item label="处置机制">
  423. <el-radio v-model="formObj.disposal" label="1">是</el-radio>
  424. <el-radio v-model="formObj.disposal" label="2">否</el-radio>
  425. <i v-if="formObj.disposal == '1'" @click="savePic('disposal')" class="el-icon-upload2"></i>
  426. <el-button primary size="mini" style="margin-left:3%" v-if="downList.disposalUrl" @click="downloadFile(downList.disposalUrl)">下载</el-button>
  427. </el-form-item>
  428. <el-form-item label="责任机制">
  429. <el-radio v-model="formObj.responsibility" label="1">是</el-radio>
  430. <el-radio v-model="formObj.responsibility" label="2">否</el-radio>
  431. <i v-if="formObj.responsibility == '1'" @click="savePic('responsibility')" class="el-icon-upload2"></i>
  432. <el-button primary size="mini" style="margin-left:3%" v-if="downList.responsibilityUrl" @click="downloadFile(downList.responsibilityUrl)">下载</el-button>
  433. </el-form-item>
  434. </el-form>
  435. <div slot="footer" class="dialog-footer">
  436. <el-button @click="showaddaz = false">取消</el-button>
  437. <el-button v-if="!isadd" type="primary" @click="saveEditax">保存</el-button>
  438. <el-button v-if="isadd" type="primary" @click="saveAddax">保存</el-button>
  439. </div>
  440. </el-dialog>
  441. <!-- 文件上传组件 -->
  442. <el-upload
  443. ref="upload"
  444. class="upload-demo"
  445. :action="uploadUrl"
  446. :on-success="handleUploadSuccess"
  447. :on-error="handleUploadError"
  448. :file-list="fileList"
  449. :auto-upload="false"
  450. :show-file-list="true"
  451. style="display: none;"
  452. >
  453. <el-button size="small" type="primary">点击上传</el-button>
  454. <div slot="tip" class="el-upload__tip">可以上传任意类型文件</div>
  455. </el-upload>
  456. </div>
  457. </template>
  458. <script>
  459. import request from '../../utils/gw_ajax_request.js'
  460. import {dateFormat} from '../../utils/gw_date.js'
  461. import {getSKList_xsk ,getrgstrIdObject,deleteXSKByObjId,deleteObjByObjId,getList_bzhgd,getrgstrIdObject_jsztfh,getrgstrIdObject_bzhgd_state} from "../../api/duChaTianBao.js";
  462. import addvSearch from "@widget/addvSearch.vue"
  463. import provTreeList from "../../widgets/provTreeList.vue";
  464. import bzhgdTab from "../duChaTianBao/bzhgdTab.vue"
  465. import {curAdcode_short,curAdcode_long} from '@util/global_variable.js'
  466. import {fillColum} from './jieshuizaitifuhe/forDifferentProvince.js'
  467. import { exportModel } from "@util/gw_exportModel";
  468. export default {
  469. components: {
  470. provTreeList: provTreeList,
  471. bzhgdTab:bzhgdTab,
  472. addvSearch
  473. },
  474. props: [],
  475. data() {
  476. return {
  477. formObj: {},
  478. aztbDataList: [],
  479. pageIndex1:1,
  480. pageSize1:20,
  481. showaddaz:false,
  482. total1:0,
  483. openType:false,
  484. tabType:"0",//0全部数据,1当前数据,2历史数据
  485. dateRange:[],
  486. lyjg:[],
  487. downList:{},
  488. downListInfo:[],
  489. utTypeL:[
  490. {id:'1',name:'企业'},
  491. {id:'2',name:'机关'},
  492. {id:'3',name:'学校'},
  493. {id:'4',name:'2019整改'},
  494. {id:'5',name:'政府机关'}
  495. ],
  496. utPptL:[
  497. {id:'1',name:'节水型'},
  498. {id:'2',name:'非节水型'}
  499. ],
  500. depName:"",
  501. wintCode:"",
  502. engScale:'',
  503. orgName:'',
  504. groupName:'',
  505. isEdit:false,
  506. groupId:'',
  507. groups:[],
  508. isadd:false,
  509. // sttm:'',
  510. // ettm:'',
  511. adName:'',
  512. treeData:[],
  513. dxdcMainHeight: window.innerHeight - 304,
  514. testHeight: window.innerHeight - 111,
  515. skDataList: [],
  516. pageIndex:1,
  517. pageSize:20,
  518. total:0,
  519. tableHeight:0,
  520. uploadId:'',
  521. currentResCode:'',
  522. currentResName:'',
  523. currentObjectId:'',
  524. currentObjectRgstrId:'',
  525. currentObjectInfoObject:null,
  526. showShuiKuTianBao:false,
  527. currentAdCode:'',
  528. currentNodeId:'',
  529. rsvrName:'',
  530. dcType:'',
  531. expLoading:false,
  532. rowData:'',
  533. disabled:true,
  534. showShuiKuTianBaoPl:false,
  535. downIcon:'el-icon-download',
  536. insuranceFormId: '', // 当前编辑的安责险记录ID
  537. expLoading:false,
  538. //
  539. repeatId: '',
  540. showDuchaDetails: false,
  541. zerenrenLabel: '"三个责任人"落实情况',
  542. pType: 130,
  543. fillTableData: [], //根据不同省份赋值
  544. xskInfoDialog: false,
  545. currentDuchaTpe: false,
  546. currentRsCode: '',
  547. xskRgstrId:'',
  548. currentObjId:'',
  549. currentRsName:'',
  550. endTime: '',
  551. curTime: new Date().getTime(),
  552. flage: false,
  553. isDateRange:false,
  554. uploadUrl: '/file/insert', // 上传接口地址
  555. fileList: [],
  556. currentUploadType: '',
  557. uploadFiles: {},
  558. // 督查弹窗相关
  559. showDuchaDialog: false,
  560. activeTab: 'basicInfo',
  561. duchaForm: {
  562. name: '',
  563. adName: '',
  564. groupName: '',
  565. intm: ''
  566. },
  567. insuranceForm: {
  568. }
  569. };
  570. },
  571. computed: {
  572. persId() {
  573. return localStorage.getItem("userid")
  574. ? localStorage.getItem("userid")
  575. : "1098101939614724096";
  576. },
  577. isAdmin:function(){
  578. return localStorage.getItem("isAdmin")? localStorage.getItem("isAdmin"): ''
  579. },
  580. currentRlcode(){
  581. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  582. },
  583. isJiangXi(){
  584. return this.currentRlcode.indexOf('36') == '0' ? true :false
  585. },
  586. curAdcode_short(){
  587. return curAdcode_short
  588. },
  589. curAdcode_long(){
  590. return curAdcode_long
  591. }
  592. },
  593. mounted() {
  594. this.$nextTick(function () {
  595. this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 50;
  596. let _self = this;
  597. window.onresize = function() {
  598. _self.tableHeight = window.innerHeight - _self.$refs.table.$el.offsetTop - 50
  599. }
  600. })
  601. this.getSkDataList();
  602. this.getAllGroup();
  603. },
  604. activated(){
  605. this.getLeftTreeData();
  606. this.currentNodeId = "";
  607. this.rsvrName = "";
  608. this.dcType = "";
  609. this.getSkDataList();
  610. },
  611. watch: {
  612. currentNodeId(n,o){
  613. this.getSkDataList();
  614. },
  615. groupName(n,o){
  616. if(n==''){
  617. this.groupId = '';
  618. }
  619. },
  620. // endTime(n,o){
  621. // this.flage = this.endTime ? (eval(this.endTime) < eval(this.curTime) ? true : false) : false
  622. // }
  623. },
  624. methods: {
  625. async downloadFile(url){
  626. console.log(url)
  627. console.log(this.downListInfo)
  628. let downloadName = ''
  629. this.downListInfo.forEach((item)=>{
  630. if(item.filePath === url){
  631. let downloadName = item.fileName
  632. }
  633. })
  634. let url1 = '/pdcApi' + url
  635. let type = "get";
  636. await exportModel(type,url1,downloadName);
  637. },
  638. savePic(type){
  639. // 保存当前上传类型
  640. this.currentUploadType = type;
  641. // 触发文件选择对话框
  642. if (this.$refs.upload && this.$refs.upload.$refs.input) {
  643. this.$refs.upload.$refs.input.click();
  644. } else {
  645. // 如果上传组件不存在,创建一个临时的文件输入元素
  646. const input = document.createElement('input');
  647. input.type = 'file';
  648. // input.accept = 'image/*';
  649. input.style.display = 'none';
  650. input.onchange = (e) => {
  651. if (e.target.files && e.target.files[0]) {
  652. const file = e.target.files[0];
  653. this.uploadFiles[type] = file;
  654. // 更新文件列表
  655. this.fileList.push({
  656. name: file.name,
  657. url: URL.createObjectURL(file)
  658. });
  659. this.$message.info('文件已选择,请点击保存按钮上传');
  660. }
  661. document.body.removeChild(input);
  662. };
  663. document.body.appendChild(input);
  664. input.click();
  665. }
  666. },
  667. // 处理文件选择
  668. handleFileChange(file, fileList){
  669. // 存储选择的文件
  670. if (this.currentUploadType) {
  671. this.uploadFiles[this.currentUploadType] = file.raw;
  672. }
  673. this.fileList = fileList;
  674. },
  675. // 处理上传成功
  676. handleUploadSuccess(response, file, fileList){
  677. this.$message.success('上传成功');
  678. // 这里可以根据需要处理上传成功后的逻辑
  679. // 例如更新表单数据或显示上传的图片
  680. console.log('上传成功:', response, this.currentUploadType);
  681. },
  682. // 处理上传失败
  683. handleUploadError(err, file, fileList){
  684. this.$message.error('上传失败,请重试');
  685. console.error('上传失败:', err);
  686. },
  687. saveEditax(){
  688. this.expLoading = true;
  689. request.post('/bis/insp/sixme/record/update',this.formObj).then((res)=>{
  690. if(res.success){
  691. this.uploadFilesFn().then(() => {
  692. this.$message.success('保存成功');
  693. this.showaddaz = false;
  694. this.toAddMember(this.rowData);
  695. this.expLoading = false;
  696. }).catch(() => {
  697. this.expLoading = false;
  698. this.$message.success('基本信息保存成功,但文件上传失败');
  699. this.showaddaz = false;
  700. this.toAddMember(this.rowData);
  701. });
  702. }else{
  703. this.$message.error(res.message);
  704. }
  705. })
  706. },
  707. saveAddax(){
  708. var par = this.formObj;
  709. par.rgstrId = this.rowData.rgstrId;
  710. par.persId = this.persId;
  711. // 先保存基本信息
  712. this.expLoading = true;
  713. request.post('/bis/insp/sixme/record/add',par).then((res)=>{
  714. if(res.success){
  715. // 然后上传文件
  716. this.uploadId = res.data.id;
  717. this.uploadFilesFn().then(() => {
  718. this.expLoading = false;
  719. this.$message.success('保存成功');
  720. this.showaddaz = false;
  721. this.toAddMember(this.rowData);
  722. }).catch(() => {
  723. this.expLoading = false;
  724. this.$message.success('基本信息保存成功,但文件上传失败');
  725. this.showaddaz = false;
  726. this.toAddMember(this.rowData);
  727. });
  728. }else{
  729. this.$message.error(res.message);
  730. }
  731. })
  732. },
  733. // 上传文件方法
  734. uploadFilesFn() {
  735. return new Promise((resolve, reject) => {
  736. // 检查是否有文件需要上传
  737. const uploadPromises = [];
  738. for (const type in this.uploadFiles) {
  739. const file = this.uploadFiles[type];
  740. if (file) {
  741. // 创建FormData对象
  742. const formData = new FormData();
  743. formData.append('file', file);
  744. formData.append('bizType', type);
  745. formData.append('bizId', this.uploadId);
  746. if(!this.isadd){
  747. formData.append('id', this.formObj.id);
  748. }
  749. // 上传文件
  750. uploadPromises.push(
  751. request.post('/file/insert', formData, {
  752. headers: {
  753. 'Content-Type': 'multipart/form-data'
  754. }
  755. })
  756. );
  757. }
  758. }
  759. if (uploadPromises.length > 0) {
  760. Promise.all(uploadPromises)
  761. .then(results => {
  762. console.log('所有文件上传成功:', results);
  763. resolve();
  764. })
  765. .catch(err => {
  766. console.error('文件上传失败:', err);
  767. reject(err);
  768. });
  769. } else {
  770. // 没有文件需要上传,直接 resolve
  771. resolve();
  772. }
  773. });
  774. },
  775. async editAx(row){
  776. this.downList = {}
  777. await request.post('/file/findAllFile',{bizId:row.id}).then((res)=>{
  778. var a = JSON.parse(JSON.stringify(res.data));
  779. this.downListInfo = a
  780. a.forEach((item)=>{
  781. if(item.bizType==='search'){
  782. this.downList.searchUrl = item.filePath;
  783. } else if(item.bizType==='judgment'){
  784. this.downList.judgmentUrl = item.filePath;
  785. } else if(item.bizType==='earlyWarning'){
  786. this.downList.earlyWarningUrl = item.filePath;
  787. } else if(item.bizType==='prevention'){
  788. this.downList.preventionUrl = item.filePath;
  789. } else if(item.bizType==='disposal'){
  790. this.downList.disposalUrl = item.filePath;
  791. } else if(item.bizType==='responsibility'){
  792. this.downList.responsibilityUrl = item.filePath;
  793. }
  794. })
  795. })
  796. this.showaddaz = true;
  797. this.isadd = false;
  798. this.formObj = row;
  799. },
  800. initScore(row){
  801. if(row.total==null || row.total==0){
  802. return 0.00;
  803. }else{
  804. return ((row.standardScore==null?0:row.standardScore)/(row.total) * 100).toFixed(2);
  805. }
  806. },
  807. clearLabel(){
  808. this.formObj = {
  809. }
  810. },
  811. tabChange(tabType){
  812. this.tabType = tabType;
  813. this.currentNodeId = "";
  814. this.groupName = "";
  815. this.groupId = "";
  816. this.getAllGroup();
  817. this.getLeftTreeData();
  818. // this.getSkDataList();
  819. },
  820. //获取所有的组
  821. getAllGroup(){
  822. var _self = this;
  823. request.get('/dc/user/getGroupByPersid',{params:{'persid':this.persId,'ptype':'130','tabType':this.tabType}}).then((res)=>{
  824. if(res.success){
  825. _self.groups = res.data;
  826. }
  827. })
  828. },
  829. querySearchAsync(queryString, cb) {
  830. var restaurants = this.groups;
  831. var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
  832. clearTimeout(this.timeout);
  833. this.timeout = setTimeout(() => {
  834. cb(results);
  835. }, 1500 * Math.random());
  836. },
  837. createStateFilter(queryString) {
  838. return (state) => {
  839. return (state.nm.toLowerCase().indexOf(queryString.toLowerCase()) != -1);
  840. };
  841. },
  842. handleSelect(item) {
  843. console.log(item);
  844. this.groupId = item.id;
  845. },
  846. getLeftTreeData(){
  847. var _self = this;
  848. _self.lyjg = [];
  849. request.get('/dc/organization/base/getAllNode',{params:{'userId':this.persId,'orgType':'130','tabType':this.tabType}}).then((res)=>{
  850. let data = res.data
  851. data.forEach(ele => {
  852. if(ele.pid == null || ele.pid == ''){
  853. ele.pid = '130'
  854. }
  855. if(ele.id.length == 6){
  856. _self.lyjg.push(ele);
  857. }
  858. });
  859. data = _self.getTrees(data)
  860. _self.currentNodeId = data.length>0?data[0].id:"";
  861. // _self.isDateRange = this.getBoolDate(data[0].sttm,data[0].entm);
  862. // _self.flage = _self.isDateRange;
  863. _self.treeData = data;
  864. // _self.endTime = data[0]['entm']
  865. })
  866. },
  867. getBoolDate(sttm,entm){
  868. if(sttm<new Date().getTime() && new Date().getTime()<entm){
  869. return true;
  870. }else if(sttm==null || entm==null){
  871. return true;
  872. }
  873. return false;
  874. },
  875. clearForm(){
  876. this.activeTab = 'basicInfo';
  877. this.insuranceForm = {
  878. };
  879. this.duchaForm = {
  880. }
  881. },
  882. //格式化树形数据
  883. getTrees(list) {
  884. //@wxcwater重写方法 适应多个树
  885. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  886. let _self =this;
  887. list.forEach((item,index)=>{
  888. item['pidLength'] = item.pid&&item.pid!=''?item.pid.length:0;
  889. if(highLevelLength>item.pidLength){
  890. highLevelLength = item.pidLength;
  891. }
  892. });
  893. console.log(highLevelLength);
  894. let heightLevelNode = [];
  895. list.forEach((item,index)=>{
  896. if(highLevelLength>=item.pidLength){
  897. heightLevelNode.push(item);
  898. }
  899. });
  900. list.forEach((item,index)=>{
  901. heightLevelNode.forEach((pItem)=>{
  902. _self.addTreeNode(pItem,item);
  903. });
  904. });
  905. console.log(heightLevelNode);
  906. return heightLevelNode;
  907. },
  908. addTreeNode:function(treeNode,leafNode){
  909. let _self = this;
  910. if(!treeNode.hasOwnProperty('children')){
  911. treeNode['children'] = [];
  912. }
  913. if(leafNode.pid == treeNode.id){
  914. treeNode.children.push(leafNode);
  915. return;
  916. }
  917. treeNode.children.forEach((item) => {
  918. _self.addTreeNode(item,leafNode);
  919. });
  920. },
  921. treeNodeClickHandler:function(data,node,tree){
  922. // this.endTime = data['entm']
  923. this.currentNodeId = data.id;
  924. if(this.currentNodeId.length==12){
  925. this.groupId = data.id;
  926. this.groupName = data.pnm;
  927. }
  928. // this.isDateRange = this.getBoolDate(data.sttm,data.entm);
  929. // this.flage = this.isDateRange;
  930. },
  931. provTreeSelectChangeHandler:function(params){
  932. this.currentAdCode = params.likeCode;
  933. this.getSkDataList();
  934. },
  935. formatDate(row,column){
  936. if(row.uptm){
  937. return (dateFormat(row.uptm,'yyyy-MM-dd'));
  938. }
  939. },
  940. formatEngScal(row,column){
  941. let engScal = row.engScal;
  942. let _engScal = '其他';
  943. switch (engScal) {
  944. case '1' : _engScal = '大(1)型';break;
  945. case '2' : _engScal = '大(2)型';break;
  946. case '3' : _engScal = '中型';break;
  947. case '4' : _engScal = '小(1)型';break;
  948. case '5' : _engScal = '小(2)型';break;
  949. case '9' : _engScal = '其他';break;
  950. }
  951. return _engScal;
  952. },
  953. getSkDataList:function(){
  954. let paramStartDate = '';
  955. let paramEndDate = '';
  956. if(this.dateRange&&this.dateRange.length>1&&this.dateRange[0]!=''&&this.dateRange[1]!=''){
  957. paramStartDate = this.dateRange[0];
  958. paramEndDate = this.dateRange[1];
  959. }
  960. let paramsData = {
  961. 'presId': this.persId,
  962. "pType": "130",
  963. "pageSize": this.pageSize,
  964. 'pageNum': this.pageIndex,
  965. 'id': this.currentNodeId,
  966. 'nm': this.depName,
  967. 'state': this.dcType,
  968. 'adName': this.adName,
  969. 'sttm': paramStartDate,
  970. 'entm': paramEndDate,
  971. 'riverId': this.orgName,
  972. 'wintCode': this.wintCode,
  973. 'groupId': this.groupId,
  974. 'tabType': this.tabType
  975. }
  976. if(this.currentRlcode.indexOf('36') == '0'){
  977. paramsData['repeatId'] = this.repeatId
  978. }
  979. this.expLoading = true;
  980. request.post('/bis/insp/sixme/rgstr/findPage',paramsData).then((res) => {
  981. if (res.success) {
  982. this.skDataList = res.data.list;
  983. this.total = res.data.total;
  984. this.expLoading = false;
  985. } else {
  986. }
  987. });
  988. // getList_bzhgd(paramsData).then(
  989. // (res) => {
  990. // console.log(res);
  991. // res.data.list.forEach((item)=>{
  992. // if(item.intm){
  993. // item.intm1 = dateFormat(item.intm,'yyyy-MM-dd');
  994. // }
  995. // })
  996. // this.skDataList = res.data.list;
  997. // this.total = res.data.total;
  998. // this.expLoading = false;
  999. // this.$nextTick(() => {
  1000. // this.$refs.table.doLayout();
  1001. // });
  1002. // }
  1003. // );
  1004. },
  1005. onSubmit(){
  1006. this.getSkDataList();
  1007. },
  1008. skCancelHandler() {
  1009. this.xskInfoDialog = false
  1010. },
  1011. toCheck(rowData){
  1012. this.toAddMember(rowData);
  1013. var _self = this;
  1014. this.rowData = rowData;
  1015. // ;
  1016. console.log(rowData);
  1017. // getrgstrIdObject(rowData.code,rowData.objId,_self.pageIndex).then(
  1018. // (res) =>{
  1019. // console.log(res);
  1020. _self.currentResCode = this.rowData.code;
  1021. _self.currentObjectId = this.rowData.objId;
  1022. _self.currentObjectRgstrId = this.rowData.rgstrId;
  1023. _self.currentResName = this.rowData.nm;
  1024. _self.showShuiKuTianBao = true;
  1025. _self.openType = false;
  1026. },
  1027. add(rowData){
  1028. this.isEdit = false;
  1029. this.toAddMember(rowData)
  1030. },
  1031. getDe(rowData){
  1032. this.isEdit = true;
  1033. this.toAddMember(rowData)
  1034. },
  1035. toAddMember(rowData){
  1036. this.rowData = rowData;
  1037. var paramsData = {
  1038. rgstrId: rowData.rgstrId
  1039. }
  1040. request.post('/bis/insp/sixme/record/list',paramsData).then((res) => {
  1041. if (res.success) {
  1042. this.aztbDataList = res.data.list;
  1043. this.total1 = res.data.total;
  1044. } else {
  1045. }
  1046. });
  1047. request.get(`/bis/insp/sixme/rgstr/getBase/${rowData.rgstrId}`).then((res)=>{
  1048. if(res.success){
  1049. this.duchaForm = res.data
  1050. }else{
  1051. }
  1052. });
  1053. // 显示弹窗
  1054. this.showDuchaDialog = true;
  1055. },
  1056. saveTb() {
  1057. console.log(this.insuranceForm);
  1058. var par = this.insuranceForm;
  1059. par.rgstrId = this.rowData.rgstrId;
  1060. par.id = this.insuranceFormId?this.insuranceFormId:'';
  1061. request.post('/bis/insp/sixme/rgstr/addRecord', par).then((res) => {
  1062. if (res.success) {
  1063. this.$message.success('保存成功');
  1064. } else {
  1065. this.$message.error(res.message);
  1066. }
  1067. });
  1068. },
  1069. cancelHandler(){
  1070. this.showShuiKuTianBao = false;
  1071. },
  1072. addShuiKuSuccess(){
  1073. this.getSkDataList();
  1074. },
  1075. delAx(row){
  1076. this.$confirm('确认删除吗?', '提示', {
  1077. confirmButtonText: '确定',
  1078. cancelButtonText: '取消',
  1079. type: 'warning'
  1080. }).then(() => {
  1081. request.post(`/bis/insp/sixme/record/delete/${row.id}`).then((res)=>{
  1082. if(res.success){
  1083. this.$message.success('删除成功');
  1084. this.toAddMember(this.rowData);
  1085. }else{
  1086. this.$message.error(res.message)
  1087. }
  1088. });
  1089. }).catch(() => {
  1090. });
  1091. },
  1092. deleteMember(obj){
  1093. var _self = this;
  1094. this.$confirm('此操作将督查对象从列表中删除,确认删除该对象吗?', '提示', {
  1095. confirmButtonText: '确定',
  1096. cancelButtonText: '取消',
  1097. type: 'warning'
  1098. }).then(() => {
  1099. request.get(`/supervision/plan/cleanObjDataByObjId?objType=130&objId=${obj.objId}`).then((res)=>{
  1100. if(res.success){
  1101. _self.pageIndexChange();
  1102. _self.$message.success('删除成功')
  1103. }else{
  1104. _self.$message.error(res.message)
  1105. }
  1106. });
  1107. }).catch(() => {
  1108. });
  1109. },
  1110. revoke(rowData){
  1111. var _self = this;
  1112. this.$confirm('确定要撤销当前信息吗?', '提示', {
  1113. confirmButtonText: '确定',
  1114. cancelButtonText: '取消',
  1115. type: 'warning'
  1116. }).then(() => {
  1117. let formObj = {
  1118. "rgstrId":rowData.rgstrId,
  1119. "state":"1"
  1120. }
  1121. request.post('/bis/insp/ststn', formObj).then((res) => {
  1122. if (res.success) {
  1123. _self.addShuiKuSuccess();
  1124. _self.$message.success("提交成功");
  1125. } else {
  1126. _self.cancelHandler();
  1127. }
  1128. });
  1129. }).catch(() => {
  1130. });
  1131. },
  1132. submitHandler(rowData){
  1133. var _self = this;
  1134. getrgstrIdObject_bzhgd_state(rowData.rgstrId).then(
  1135. (res) =>{
  1136. // if(res.data.sceneState !='2'){
  1137. // this.$message({
  1138. // message: '施工现场布置状态填报未完成!',
  1139. // type: 'warning'
  1140. // });
  1141. // return
  1142. // }
  1143. // if(res.data.tmprState !='2'){
  1144. // this.$message({
  1145. // message: '临时工程状态填报未完成!',
  1146. // type: 'warning'
  1147. // });
  1148. // return
  1149. // }
  1150. // if(res.data.safState !='2'){
  1151. // this.$message({
  1152. // message: '安全文明施工填报未完成!',
  1153. // type: 'warning'
  1154. // });
  1155. // return
  1156. // }
  1157. this.$confirm('请确认所有信息填报完毕?', '提示', {
  1158. confirmButtonText: '确定',
  1159. cancelButtonText: '取消',
  1160. type: 'warning'
  1161. }).then(() => {
  1162. let formObj = {
  1163. "rgstrId":rowData.rgstrId,
  1164. "state":"2"
  1165. }
  1166. request.post('/bis/insp/ststn', formObj).then((res) => {
  1167. if (res.success) {
  1168. _self.addShuiKuSuccess();
  1169. _self.$message.success("提交成功");
  1170. } else {
  1171. _self.cancelHandler();
  1172. }
  1173. });
  1174. }).catch(() => {
  1175. });
  1176. },(err) =>{
  1177. });
  1178. },
  1179. pageIndexChange(val){
  1180. console.log(val);
  1181. this.pageIndex = val;
  1182. this.getSkDataList();
  1183. },
  1184. handleSizeChange(val){
  1185. this.getSkDataList();
  1186. },
  1187. pageIndexChange1(val){
  1188. this.pageIndex1 = val;
  1189. this.toAddMember(this.rowData);
  1190. this.activeTab = 'aztb';
  1191. },
  1192. handleSizeChange1(val){
  1193. this.pageSize1 = val;
  1194. this.toAddMember(this.rowData);
  1195. this.activeTab = 'aztb';
  1196. },
  1197. // 下载填报模板
  1198. async downloadTemplate(){
  1199. let url = '/pdcApi/dc/impExcel/downloadTemplate/sk?userId='+this.persId+'&id='+this.currentNodeId;
  1200. let downloadName = "小水库填报模板.xls";
  1201. let type = "get";
  1202. await exportModel(type,url,downloadName);
  1203. this.disabled = false;
  1204. },
  1205. showPlDialog(){
  1206. this.showShuiKuTianBaoPl = true
  1207. },
  1208. closePlDialog(val){
  1209. this.showShuiKuTianBaoPl = false
  1210. },
  1211. // 新需求 点击复查显示以前的督查信息
  1212. toShowDuchaDetail(row){
  1213. this.currentResCode = row.code;
  1214. this.currentObjectId = row.objId;
  1215. this.currentObjectRgstrId = row.rgstrId;
  1216. this.currentResName = row.nm;
  1217. this.showDuchaDetails = true
  1218. },
  1219. closeInfoDialog(){
  1220. this.showDuchaDetails = false
  1221. },
  1222. // 加入复查
  1223. joinRecheck(row){
  1224. let _self = this
  1225. let data = {
  1226. regerId: row.rgstrId,
  1227. type: '130'
  1228. }
  1229. this.$confirm('确定加入复查吗?', '提示', {
  1230. confirmButtonText: '确定',
  1231. cancelButtonText: '取消',
  1232. type: 'warning'
  1233. }).then(() => {
  1234. request.post(`/bis/insp/repeat/check/log`, data).then((res)=>{
  1235. if(res.success){
  1236. _self.$message.success('已加入复查')
  1237. _self.getSkDataList();
  1238. }else{
  1239. _self.$message.error(res.message)
  1240. }
  1241. }).catch(err=>{
  1242. _self.$message.error(res.message)
  1243. });
  1244. }).catch(() => {
  1245. });
  1246. }
  1247. },
  1248. };
  1249. </script>
  1250. <style>
  1251. .skactive{
  1252. background: #3f8eff !important;
  1253. color:white !important;
  1254. margin-top: 5px;
  1255. margin-bottom: 5px;
  1256. }
  1257. .sknormal{
  1258. background: white;
  1259. margin-top: 5px;
  1260. margin-bottom: 5px;
  1261. }
  1262. .el-table .warning-row {
  1263. background: oldlace;
  1264. }
  1265. .el-table .success-row {
  1266. background: #f0f9eb;
  1267. }
  1268. #dxdcListMainsk{
  1269. overflow-y: hidden;
  1270. }
  1271. .tab-content {
  1272. padding: 20px 0;
  1273. }
  1274. .dialog-footer {
  1275. text-align: center;
  1276. }
  1277. .el-icon-upload2,.el-icon-circle-plus{
  1278. color: #00bbff;
  1279. font-size: 18px;
  1280. line-height: 12px;
  1281. vertical-align: middle;
  1282. cursor: pointer;
  1283. }
  1284. </style>