df3c923a26fc8ef3b6ddd8ba74c15ac7b0de0e6f.svn-base 61 KB

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