779c7450818fc0ea1d8d20002938ab6a28c39226.svn-base 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978
  1. <template>
  2. <el-container class="monthReport">
  3. <el-card class="box-card">
  4. <h3 class="title_monthReport" style="font-size: 20px !important;font-weight: bold !important;color: black !important;">
  5. {{currentOrgNm}}
  6. <el-date-picker
  7. style="width:135px;"
  8. v-model="searchForm.chkMonth"
  9. type="month"
  10. placeholder="">
  11. </el-date-picker>
  12. 督查检查考核计划调度安排表
  13. </h3>
  14. <el-form :inline="true" size="mini" class="demo-form-inline" label-width="120px">
  15. <el-form-item label="检查实施单位">
  16. <el-input v-model="searchForm.chkDep" placeholder="检查实施单位" clearable></el-input>
  17. </el-form-item>
  18. <el-form-item label="检查区域">
  19. <el-input v-model="searchForm.chkCity" placeholder="检查区域" clearable></el-input>
  20. </el-form-item>
  21. <el-form-item label="事项内容">
  22. <el-input v-model="searchForm.chkTitle" placeholder="事项内容" clearable></el-input>
  23. </el-form-item>
  24. <el-form-item label="检查组">
  25. <el-input v-model="searchForm.chkGrp" placeholder="检查组" clearable></el-input>
  26. </el-form-item>
  27. <el-form-item label="开展方式">
  28. <el-select v-model="searchForm.chkType" placeholder="开展方式" clearable>
  29. <el-option v-for="item in chkFormArr" :label="item.label" :value="item.value"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. </el-form>
  33. <div>
  34. <div style="text-align:right;width:100%;padding-top: 10px;padding-bottom: 10px;">
  35. <el-button type="primary" size="mini" @click="searchBtn">查询</el-button>
  36. <el-button type="success" size="mini" @click="addBtn">添加检查计划</el-button>
  37. <el-button type="primary" size="mini" @click="exportExcel">导出检查计划</el-button>
  38. <el-button type="warning" style="background: #2711ff;color:white" size="mini" @click="downloadTemplate">下载模板</el-button>
  39. <span style="padding-left: 10px;">
  40. <common-upload-auto-simple
  41. ref="ImportPlan"
  42. :limit=1
  43. :url="`/pdcApi/bis/insp/planMonth/import`"
  44. @uploadOver="uploadOver"
  45. :accept="'.xls,.xlsx'"
  46. style="margin:auto;"
  47. comment=".xls,.xlsx格式,不超过2MB(自动上传)"
  48. fileDesc="导入"
  49. ></common-upload-auto-simple>
  50. </span>
  51. </div>
  52. <span style="float:left;color:red;font-size:12px;">(<i class="el-icon-warning"></i>提示:颜色一样的行代表重复或重叠数据)</span>
  53. <el-table
  54. border
  55. ref="multipleTable"
  56. :height="tableHeight"
  57. :data="tableData"
  58. :row-style="rowClass"
  59. tooltip-effect="dark"
  60. style="width: 100%"
  61. v-loading="loading"
  62. @selection-change="handleSelectionSend">
  63. <!-- <el-table-column-->
  64. <!-- type="selection"-->
  65. <!-- width="55">-->
  66. <!-- </el-table-column>-->
  67. <!-- <el-table-column align="center" type="index" label="序号" width="80">-->
  68. <!-- <template slot-scope="scope">{{ (pageNum - 1) * pageSize + (scope.$index + 1) }}</template>-->
  69. <!-- </el-table-column>-->
  70. <el-table-column align="center" prop="ordr" label="序号" width="80"></el-table-column>
  71. <el-table-column
  72. header-align="center"
  73. align="center"
  74. min-width="180"
  75. prop="yearChkName"
  76. label="年度检查计划名称"
  77. show-overflow-tooltip
  78. ></el-table-column>
  79. <el-table-column
  80. header-align="center"
  81. align="center"
  82. min-width="120"
  83. prop="yearChkType"
  84. label="年度检查类别"
  85. show-overflow-tooltip
  86. ></el-table-column>
  87. <el-table-column
  88. header-align="center"
  89. align="center"
  90. min-width="100"
  91. prop="chkMonth"
  92. :formatter="formatDate1"
  93. label="年月"
  94. show-overflow-tooltip
  95. ></el-table-column>
  96. <el-table-column
  97. header-align="center"
  98. align="center"
  99. min-width="120"
  100. prop="chkDep"
  101. label="检查实施单位"
  102. show-overflow-tooltip
  103. ></el-table-column>
  104. <el-table-column
  105. header-align="center"
  106. align="center"
  107. min-width="200"
  108. prop="chkGrp"
  109. label="检查组"
  110. show-overflow-tooltip
  111. ></el-table-column>
  112. <el-table-column
  113. header-align="center"
  114. align="center"
  115. min-width="200"
  116. prop="chkTitle"
  117. label="事项内容"
  118. show-overflow-tooltip
  119. ></el-table-column>
  120. <el-table-column
  121. header-align="center"
  122. align="center"
  123. min-width="200"
  124. prop=""
  125. label="你检查时间"
  126. show-overflow-tooltip
  127. >
  128. <el-table-column
  129. header-align="center"
  130. align="center"
  131. min-width="120"
  132. prop="planSttm"
  133. :formatter="formatDate"
  134. label="开始"
  135. show-overflow-tooltip
  136. ></el-table-column>
  137. <el-table-column
  138. header-align="center"
  139. align="center"
  140. min-width="120"
  141. prop="planEntm"
  142. :formatter="formatDate"
  143. label="结束"
  144. show-overflow-tooltip
  145. ></el-table-column>
  146. </el-table-column>
  147. <el-table-column
  148. header-align="center"
  149. align="center"
  150. min-width="200"
  151. prop=""
  152. label="是否到水利(水务)局"
  153. show-overflow-tooltip
  154. >
  155. <el-table-column
  156. header-align="center"
  157. align="center"
  158. min-width="50"
  159. prop="leadDep"
  160. label="是否"
  161. show-overflow-tooltip
  162. >
  163. </el-table-column>
  164. <el-table-column
  165. header-align="center"
  166. align="center"
  167. min-width="200"
  168. prop="joinDep"
  169. label="水利(水务)局名称"
  170. show-overflow-tooltip
  171. ></el-table-column>
  172. </el-table-column>
  173. <el-table-column
  174. header-align="center"
  175. align="center"
  176. min-width="200"
  177. prop=""
  178. label="检查区域"
  179. show-overflow-tooltip
  180. >
  181. <el-table-column
  182. header-align="center"
  183. align="center"
  184. min-width="200"
  185. prop="chkCity"
  186. label="行政区划市"
  187. show-overflow-tooltip
  188. ></el-table-column>
  189. <el-table-column
  190. header-align="center"
  191. align="center"
  192. min-width="200"
  193. prop="chkCountry"
  194. label="区县(市)"
  195. show-overflow-tooltip
  196. ></el-table-column>
  197. </el-table-column>
  198. <el-table-column
  199. header-align="center"
  200. align="center"
  201. min-width="80"
  202. prop="chkSize"
  203. label="项目数量"
  204. show-overflow-tooltip
  205. ></el-table-column>
  206. <el-table-column
  207. header-align="center"
  208. align="center"
  209. min-width="100"
  210. prop="chkType"
  211. label="开展方式"
  212. show-overflow-tooltip
  213. ></el-table-column>
  214. <el-table-column
  215. header-align="center"
  216. align="center"
  217. min-width="100"
  218. prop="chkPers"
  219. label="联络人"
  220. show-overflow-tooltip
  221. ></el-table-column>
  222. <el-table-column
  223. header-align="center"
  224. align="center"
  225. min-width="120"
  226. prop="chkPersTel"
  227. label="联系方式"
  228. show-overflow-tooltip
  229. ></el-table-column>
  230. <el-table-column
  231. header-align="center"
  232. align="center"
  233. min-width="200"
  234. prop="chkNote"
  235. label="统筹调度意见"
  236. show-overflow-tooltip
  237. ></el-table-column>
  238. <el-table-column
  239. align="center"
  240. min-width="400"
  241. label="操作"
  242. v-if="ownPriv('manage')"
  243. fixed="right">
  244. <template slot-scope="scope">
  245. <el-button type="success" size="mini" @click.stop="lookOver(scope.row)">查看</el-button>
  246. <el-button type="success" size="mini" @click.stop="edit(scope.row)">编辑</el-button>
  247. <el-button type="danger" size="mini" @click.stop="deleteData(scope.row.id)">删除</el-button>
  248. <el-button type="warning" size="mini" @click.stop="showYearPlan(scope.row.id)">关联年度计划</el-button>
  249. </template>
  250. </el-table-column>
  251. </el-table>
  252. <!-- <el-pagination-->
  253. <!-- style="margin: 10px auto"-->
  254. <!-- background-->
  255. <!-- :pager-count="5"-->
  256. <!-- :current-page="pageNum"-->
  257. <!-- :page-size="pageSize"-->
  258. <!-- :page-sizes="[10, 20, 30, 40, 50, 100]"-->
  259. <!-- layout="sizes, total, prev, pager, next"-->
  260. <!-- :total="total"-->
  261. <!-- @current-change="handleCurrentChange"-->
  262. <!-- @size-change="handleSizeChange"-->
  263. <!-- ></el-pagination>-->
  264. </div>
  265. <el-dialog
  266. class="outerDialog custom_dialog"
  267. :title="'督查检查计划详细'"
  268. width="40%"
  269. @close="closeDetailDialog"
  270. :visible.sync="detailDialogVisible">
  271. <div style="width: 100%;height:100%;overflow: auto;">
  272. <table>
  273. <tr><td>年月</td><td>{{detailObj.chkMonth}}</td></tr>
  274. <tr><td>检查实施单位</td><td>{{detailObj.chkDep}}</td></tr>
  275. <tr><td>检查组</td><td>{{detailObj.chkGrp}}</td></tr>
  276. <tr><td>事项内容</td><td>{{detailObj.chkTitle}}</td></tr>
  277. <tr><td>拟检查开始时间</td><td>{{detailObj.planSttm+'~'+detailObj.planEntm}}</td></tr>
  278. <tr><td>是否到水利(水务)局</td><td>{{detailObj.leadDep}}</td></tr>
  279. <tr v-if="detailObj.leadDep=='是'"><td>水利(水务)局名称</td><td>{{detailObj.joinDep}}</td></tr>
  280. <tr><td>行政区划市</td><td>{{detailObj.chkCity}}</td></tr>
  281. <tr><td>区、县(市)</td><td>{{detailObj.chkCountry}}</td></tr>
  282. <tr><td>项目数量</td><td>{{detailObj.chkSize}}</td></tr>
  283. <tr><td>开展方式</td><td>{{detailObj.chkType}}</td></tr>
  284. <tr><td>联络人</td><td>{{detailObj.chkPers}}</td></tr>
  285. <tr><td>联系方式</td><td>{{detailObj.chkPersTel}}</td></tr>
  286. <tr><td>统筹调度意见</td><td>{{detailObj.chkNote}}</td></tr>
  287. </table>
  288. </div>
  289. </el-dialog>
  290. <el-dialog
  291. class="outerDialog custom_dialog"
  292. :title="dialogT+'督查检查计划'"
  293. width="40%"
  294. @close="closeAddDialog"
  295. v-if="addDialogVisible"
  296. :visible.sync="addDialogVisible">
  297. <div style="width: 100%;height:100%;">
  298. <el-form ref="addForm" label-width="150px">
  299. <el-form-item label="序号" required>
  300. <el-input v-model="addForm.ordr" placeholder="请输入序号"></el-input>
  301. </el-form-item>
  302. <el-form-item label="年月" required>
  303. <el-date-picker
  304. v-model="addForm.chkMonth"
  305. type="month"
  306. placeholder="选择月">
  307. </el-date-picker>
  308. </el-form-item>
  309. <el-form-item label="检查实施单位" required>
  310. <el-input v-model="addForm.chkDep" placeholder="请输入检查实施单位"></el-input>
  311. </el-form-item>
  312. <el-form-item label="检查组" required>
  313. <el-input v-model="addForm.chkGrp" placeholder="请输入检查组"></el-input>
  314. </el-form-item>
  315. <el-form-item label="事项内容" required>
  316. <el-input v-model="addForm.chkTitle" placeholder="请输入事项内容"></el-input>
  317. </el-form-item>
  318. <el-form-item label="拟检查时间" required>
  319. <el-date-picker
  320. v-model="dateRange"
  321. type="daterange"
  322. range-separator="至"
  323. start-placeholder="开始日期"
  324. end-placeholder="结束日期">
  325. </el-date-picker>
  326. </el-form-item>
  327. <el-form-item label="是否到水利(水务)局" required>
  328. <el-radio-group v-model="addForm.leadDep">
  329. <el-radio label="是">是</el-radio>
  330. <el-radio label="否">否</el-radio>
  331. </el-radio-group>
  332. <el-input v-model="addForm.joinDep" placeholder="请输入水利(水务)局名称" v-if="addForm.leadDep=='是'"></el-input>
  333. </el-form-item>
  334. <el-form-item label="检查区域">
  335. <el-form-item label="行政区划市">
  336. <addvMul key="city" :rootAddCode='organCode' :level='"1"' ref="city" @changeAddv="changeAddv"></addvMul>
  337. <!-- <el-input v-model="addForm.chkCity" placeholder="请输入市水利(水务)局"></el-input>-->
  338. </el-form-item>
  339. <el-form-item label="区、县(市)">
  340. <addvMul key="country" ref="country" @changeAddv="changeAddv"></addvMul>
  341. <!-- <el-input v-model="addForm.chkCountry" placeholder="请输入区、县(市)"></el-input>-->
  342. </el-form-item>
  343. </el-form-item>
  344. <!-- <el-form-item label="检查区域">-->
  345. <!-- <el-form-item label="行政区划市">-->
  346. <!-- <addvMul key="city" :rootAddCode='organCode' :level='"1"' ref="city" @changeAddv="changeAddv"></addvMul>-->
  347. <!--&lt;!&ndash; <el-input v-model="addForm.chkCity" placeholder="请输入市水利(水务)局"></el-input>&ndash;&gt;-->
  348. <!-- </el-form-item>-->
  349. <!-- <el-form-item label="区、县(市)">-->
  350. <!-- <addvMul key="country" :rootAddCode='organCode' :level='"2"' ref="country" @changeAddv="changeAddv"></addvMul>-->
  351. <!--&lt;!&ndash; <el-input v-model="addForm.chkCountry" placeholder="请输入区、县(市)"></el-input>&ndash;&gt;-->
  352. <!-- </el-form-item>-->
  353. <!-- </el-form-item>-->
  354. <el-form-item label="项目数量" required>
  355. <el-input v-model="addForm.chkSize" placeholder="请输入项目数量"></el-input>
  356. </el-form-item>
  357. <el-form-item label="开展方式" required>
  358. <el-select v-model="addForm.chkType" placeholder="开展方式">
  359. <el-option v-for="item in chkFormArr" :label="item.label" :value="item.value"></el-option>
  360. </el-select>
  361. </el-form-item>
  362. <el-form-item label="联络人" required>
  363. <el-input v-model="addForm.chkPers" placeholder="请输入联络人"></el-input>
  364. </el-form-item>
  365. <el-form-item label="联系方式" required>
  366. <el-input v-model="addForm.chkPersTel" placeholder="请输入联系方式"></el-input>
  367. </el-form-item>
  368. <el-form-item label="统筹调度意见">
  369. <el-input v-model="addForm.chkNote" placeholder="请输入统筹调度意见"></el-input>
  370. </el-form-item>
  371. <el-form-item style="text-align: center">
  372. <el-button type="primary" @click="addSubmit" style="margin-bottom: 30px;">确定</el-button>
  373. </el-form-item>
  374. </el-form>
  375. </div>
  376. </el-dialog>
  377. <el-dialog
  378. class="outerDialog custom_dialog"
  379. :title="'关联年度计划'"
  380. width="30%"
  381. @close="closeYearDialog"
  382. v-if="yearDialogVisible"
  383. :visible.sync="yearDialogVisible">
  384. <div style="width: 100%;height:100%;">
  385. <el-form ref="yearForm" label-width="80px">
  386. <el-form-item label="年度计划">
  387. <el-select v-model="yearId" filterable placeholder="请选择年度计划" style="width: 100%;">
  388. <el-option
  389. v-for="item in planYeatList"
  390. :key="item.value"
  391. :label="item.label"
  392. :value="item.value">
  393. </el-option>
  394. </el-select>
  395. </el-form-item>
  396. <el-form-item style="text-align: center">
  397. <el-button type="primary" @click="updateData" style="margin-bottom: 30px;">确定</el-button>
  398. </el-form-item>
  399. </el-form>
  400. </div>
  401. </el-dialog>
  402. </el-card>
  403. </el-container>
  404. </template>
  405. <script>
  406. import {exportModel} from "@util/gw_exportModel";
  407. import request from '@util/gw_ajax_request'
  408. import receiver from "./receiver"
  409. import CommonUploadAutoSimple from "../../../widgets/common-upload-auto-simple";
  410. import addvMul from "../../../widgets/addvMul.vue"
  411. export default {
  412. name: "",
  413. props: ["rowData"],
  414. data() {
  415. return {
  416. chkFormArr:[{
  417. label:"暗访",
  418. value:"暗访"
  419. },{
  420. label:"明查",
  421. value:"明查"
  422. },{
  423. label:"调研",
  424. value:"调研"
  425. },{
  426. label:"座谈",
  427. value:"座谈"
  428. },{
  429. label:"稽察",
  430. value:"稽察"
  431. },{
  432. label:"实地检查",
  433. value:"实地检查"
  434. },{
  435. label:"明查抽查",
  436. value:"明查抽查"
  437. },{
  438. label:"明查暗访",
  439. value:"明查暗访"
  440. }],
  441. mulSelectionSend:[],
  442. curList:[],
  443. year:[new Date().getFullYear()+"-01",new Date().getFullYear()+"-"+((new Date().getMonth()+1)>9?(new Date().getMonth()+1):"0"+(new Date().getMonth()+1))],
  444. month:new Date().getMonth()+1,
  445. isOne:false,
  446. years:[new Date().getFullYear()-1,new Date().getFullYear(),new Date().getFullYear()+1],
  447. months:[1,2,3,4,5,6,7,8,9,10,11,12],
  448. dcTypeList:[],
  449. ptypeArr:[{label:'暗访',value:"0"},{label:'明查',value:"1"}],
  450. dialogT:"",
  451. monthDialogVisible:true,
  452. addDialogVisible:false,
  453. detailDialogVisible:false,
  454. tableHeight:window.innerHeight-300,
  455. tableData:[],
  456. loading:false,
  457. pageNum:1,
  458. pageSize:10,
  459. total:0,
  460. objTypes:[],
  461. searchForm:{
  462. chkMonth:new Date(),
  463. chkDep:"",
  464. chkGrp:"",
  465. chkTitle:"",
  466. chkCity:""
  467. },
  468. YM:"",
  469. detailObj:{},
  470. orgIdDefault:"",
  471. dateRange:[],
  472. addForm:{
  473. ordr:"",
  474. adCode:"",
  475. chkTitle:"",
  476. chkMonth:"",
  477. chkDep:"",
  478. chkGrp:"",
  479. planSttm:"",
  480. planEntm:"",
  481. leadDep:"",
  482. joinDep:"",
  483. chkCity:"",
  484. chkCountry:"",
  485. chkSize:"",
  486. chkType:"",
  487. chkPers:"",
  488. chkPersTel:"",
  489. chkNote:""
  490. },
  491. colors:[
  492. '#fd0e0a',
  493. '#f07c06',
  494. '#fdf20b',
  495. '#08f916',
  496. '#08c3c7',
  497. '#065eeb',
  498. '#7c0ac9',
  499. '#de0ded',
  500. '#C99A93',
  501. '#3E9467',
  502. '#D1385F',
  503. '#d1c289',
  504. '#ffccff',
  505. '#84d1cb',
  506. '#ccffcc',
  507. '#669933',
  508. '#666600',
  509. '#008000',
  510. '#66cdaa',
  511. '#708090',
  512. '#b0c4de',
  513. '#6495ed',
  514. '#9370db',
  515. '#db7093',
  516. '#483d8b'
  517. ],
  518. yearDialogVisible:false,
  519. yearId:"",
  520. currentId:"",
  521. planYeatList:[]
  522. }
  523. },
  524. filters:{
  525. chkTypeFor(val,that){
  526. var nm = ""
  527. that.chkFormArr.forEach((item)=>{
  528. if(item.value==val){
  529. nm = item.label;
  530. }
  531. })
  532. return nm;
  533. }
  534. },
  535. components: {
  536. receiver,
  537. CommonUploadAutoSimple,
  538. addvMul
  539. },
  540. computed: {
  541. persId() {
  542. return localStorage.getItem("userid")
  543. ? localStorage.getItem("userid")
  544. : "1098101939614724096";
  545. },
  546. orgId() {
  547. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  548. },
  549. organCode() {
  550. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  551. },
  552. currentOrgNm(){
  553. return localStorage.getItem('currentOrgNm') ? localStorage.getItem('currentOrgNm') : ''
  554. }
  555. },
  556. created(){
  557. // this.getColorRandom(100);
  558. // this.getTypes();
  559. },
  560. mounted() {
  561. this.initTableData();
  562. },
  563. methods: {
  564. showYearPlan(id){
  565. this.getAllYearPlan();
  566. this.yearDialogVisible = true;
  567. this.currentId = id;
  568. },
  569. colorNum(min,max) {
  570. return Math.floor(Math.random()*(max-min)+min);
  571. },
  572. rgbStr(min,max) {
  573. var r=this.colorNum(min,max);
  574. var g=this.colorNum(min,max);
  575. var b=this.colorNum(min,max);
  576. this.colors.push("rgb("+r+','+g+','+b+")");
  577. },
  578. getColorRandom(num){
  579. var colorarr = [];
  580. //构成颜色的字符元素
  581. var cArray=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
  582. for(var i=0;i<num;i++){
  583. var color = "#";
  584. for(var j=0;j<6;j++){
  585. var cIndex = Math.round(Math.random()*15);
  586. color+=cArray[cIndex];
  587. }
  588. colorarr[i] = color;
  589. }
  590. this.colors=colorarr;
  591. console.log(colorarr);
  592. },
  593. changeAddv(obj){
  594. if(obj.level=='1'){
  595. this.addForm.chkCity = obj.adNames;
  596. this.addForm.chkCityCode = obj.adCodes;
  597. if(!this.addForm.chkCityCode){
  598. this.addForm.chkCountry = "";
  599. this.addForm.chkCountryCode = "";
  600. }
  601. this.$nextTick(()=>{
  602. this.$refs.country.setCheck([],[]);
  603. this.$refs.country.getAdDataList(this.addForm.chkCityCode,"3");
  604. })
  605. }
  606. if(obj.level=='3'){
  607. this.addForm.chkCountry = obj.adNames;
  608. this.addForm.chkCountryCode = obj.adCodes;
  609. }
  610. },
  611. async downloadTemplate() {
  612. let url = "/pdcApi/bis/insp/planMonth/downloadExcel";
  613. let type = "get";
  614. let exportName = "督查检查考核计划调度安排表.xls"
  615. let result = await exportModel(type, url, exportName, null);
  616. },
  617. uploadOver(){
  618. this.initTableData();
  619. },
  620. addFormBtn(){
  621. this.addDialogVisible = true;
  622. this.addForm = {};
  623. this.dialogT = "添加";
  624. },
  625. handleSelectionSend(val){
  626. this.mulSelectionSend = val;
  627. },
  628. rowClass({row, index}) {
  629. if(row.repeat) {
  630. return { "background-color":this.colors[row.color] }
  631. }
  632. },
  633. chkFormFormat(row, column, cellValue, index){
  634. var nm = ""
  635. this.chkFormArr.forEach((item)=>{
  636. if(item.value==row.chkType){
  637. nm = item.label;
  638. }
  639. })
  640. return nm;
  641. },
  642. getTypes() {
  643. var _self = this;
  644. request.get(`/bis/insp/rel/org/insp/type/getInspTypeByOrgId/${this.orgId}`)
  645. .then(res => {
  646. if (res.success) {
  647. _self.dcTypeList = res.data;
  648. }
  649. })
  650. },
  651. closeDialog(){
  652. this.$emit('closeDialogMonth')
  653. },
  654. closeDetailDialog(){
  655. this.detailDialogVisible = false;
  656. },
  657. objFormat(row, column, cellValue, index){
  658. var name = "";
  659. this.dcTypeList.forEach((item)=>{
  660. if(parseInt(item.inspType)==row.OBJTYPE){
  661. name = item.inspName;
  662. }
  663. })
  664. return name;
  665. },
  666. formatDate(row, column, cellValue, index){
  667. var dateF = row[column.property];
  668. if(dateF){
  669. var date = new Date(dateF);
  670. return date.getFullYear()+"-"+((date.getMonth()+1)>9?(date.getMonth()+1):'0'+(date.getMonth()+1))+"-"+date.getDate();
  671. }
  672. return "";
  673. },
  674. formatDate1(row, column, cellValue, index){
  675. var dateF = row[column.property];
  676. if(dateF){
  677. var date = new Date(dateF);
  678. return date.getFullYear()+"-"+((date.getMonth()+1)>9?(date.getMonth()+1):'0'+(date.getMonth()+1))
  679. }
  680. return "";
  681. },
  682. async exportExcel() {
  683. let url = "/pdcApi/bis/insp/planMonth/export";
  684. let type = "POST";
  685. let exportName = "督查检查考核计划调度安排表.xls"
  686. let result = await exportModel(type, url, exportName,JSON.stringify(this.searchForm));
  687. },
  688. deleteData(id){
  689. var _self = this;
  690. this.$confirm('确定删除该条数据吗, 是否继续?', '提示', {
  691. confirmButtonText: '确定',
  692. cancelButtonText: '取消',
  693. type: 'warning'
  694. }).then(() => {
  695. request.post('/bis/insp/planMonth/delete/'+id).then(res=>{
  696. if(res.success){
  697. _self.initTableData();
  698. }else{
  699. _self.$message.warning(res.message);
  700. }
  701. })
  702. }).catch(() => {
  703. this.$message({
  704. type: 'info',
  705. message: '已取消删除'
  706. });
  707. });
  708. },
  709. edit(row){
  710. var obj = JSON.stringify(row);
  711. this.addDialogVisible = true;
  712. this.addForm = JSON.parse(obj);
  713. this.dateRange = [this.addForm.planSttm,this.addForm.planEntm];
  714. this.dialogT = "编辑";
  715. this.$nextTick(()=>{
  716. this.$refs.city.setCheck(row.chkCityCode?row.chkCityCode.split(","):[],row.chkCity?row.chkCity.split(","):[]);
  717. this.$refs.country.getAdDataList(row.chkCityCode,"3");
  718. this.$refs.country.setCheck(row.chkCountryCode?row.chkCountryCode.split(","):[],row.chkCountry?row.chkCountry.split(","):[]);
  719. })
  720. },
  721. addSubmit(){
  722. if(!this.addForm.ordr){
  723. this.$message.warning("请输入序号");
  724. return;
  725. }
  726. if(!/^[1-9]\d*$/.test(this.addForm.ordr)){
  727. this.$message.warning("请输入大于0的正整数");
  728. return;
  729. }
  730. if(!this.addForm.chkMonth){
  731. this.$message.warning("请输入年月");
  732. return;
  733. }
  734. if(!this.addForm.chkDep){
  735. this.$message.warning("请输入检查实施单位");
  736. return;
  737. }
  738. if(!this.addForm.chkGrp){
  739. this.$message.warning("请输入检查组");
  740. return;
  741. }
  742. if(!this.addForm.chkTitle){
  743. this.$message.warning("请输入事项内容");
  744. return;
  745. }
  746. if(!this.dateRange || this.dateRange.length==0){
  747. this.$message.warning("请选择拟检查时间");
  748. return;
  749. }
  750. if(!this.addForm.leadDep){
  751. this.$message.warning("请选择是否到水利(水务)局");
  752. return;
  753. }
  754. if(this.addForm.leadDep=='是' && !this.addForm.joinDep){
  755. this.$message.warning("请输入水利(水务)局名称");
  756. return;
  757. }
  758. // if(!this.addForm.chkCity){
  759. // this.$message.warning("请选择行政区划市");
  760. // return;
  761. // }
  762. // if(!this.addForm.chkCountry){
  763. // this.$message.warning("请选择区县(市)");
  764. // return;
  765. // }
  766. if(!this.addForm.chkSize){
  767. this.$message.warning("请输入项目数量");
  768. return;
  769. }
  770. if(!this.addForm.chkType){
  771. this.$message.warning("请选择开展方式");
  772. return;
  773. }
  774. if(!this.addForm.chkPers){
  775. this.$message.warning("请输入联络人");
  776. return;
  777. }
  778. if(!this.addForm.chkPersTel){
  779. this.$message.warning("请输入联系方式");
  780. return;
  781. }
  782. if(this.dateRange && this.dateRange.length>0){
  783. this.addForm.planSttm = this.dateRange[0];
  784. this.addForm.planEntm = this.dateRange[1];
  785. }
  786. var _self = this;
  787. request.post('/bis/insp/planMonth/',this.addForm).then(res=>{
  788. if(res.success){
  789. _self.$message.success("保存成功");
  790. _self.addDialogVisible = false;
  791. _self.addForm = {};
  792. _self.dateRange = [];
  793. _self.initTableData();
  794. }else{
  795. _self.$message.warning(res.message);
  796. }
  797. })
  798. },
  799. updateData(){
  800. if(!this.yearId){
  801. this.$message.warning("请选择年度计划");
  802. return;
  803. }
  804. var obj = {
  805. id:this.currentId,
  806. yearPlanId:this.yearId
  807. }
  808. var _self = this;
  809. request.post('/bis/insp/planMonth/',obj).then(res=>{
  810. if(res.success){
  811. _self.$message.success("关联成功");
  812. _self.yearDialogVisible = false;
  813. _self.currentId = "";
  814. _self.yearId = "";
  815. _self.initTableData();
  816. }else{
  817. _self.$message.warning(res.message);
  818. }
  819. })
  820. },
  821. getAllYearPlan(){
  822. var _self = this;
  823. this.planYeatList = [];
  824. request.post('/bis/insp/plan/year/findList',{}).then(res=>{
  825. if(res.success){
  826. if(res.data && res.data.length > 0){
  827. res.data.forEach((item)=>{
  828. _self.planYeatList.push({
  829. value:item.id,
  830. label:item.chkName+"("+item.chkType+")"
  831. })
  832. })
  833. }
  834. }else{
  835. _self.$message.warning(res.message);
  836. }
  837. })
  838. },
  839. selectOrgChange(data){
  840. this.addForm.unitName = data.name;
  841. },
  842. clearRecv(){
  843. this.addForm.unitName = "";
  844. },
  845. closeAddDialog(){
  846. this.addDialogVisible = false;
  847. },
  848. closeYearDialog(){
  849. this.yearDialogVisible = false;
  850. },
  851. chkMul(){
  852. this.curList = [];
  853. if(this.mulSelectionSend && this.mulSelectionSend.length>0){
  854. this.loading = true;
  855. for(var i = 0;i<this.mulSelectionSend.length;i++){
  856. this.curList.push(this.mulSelectionSend[i].ID);
  857. }
  858. this.isOne = true;
  859. this.initTableData();
  860. this.loading = false;
  861. }else{
  862. this.$message.warning("请选择数据");
  863. }
  864. },
  865. initTableData(){
  866. // this.searchForm.pageNum = this.pageNum;
  867. // this.searchForm.pageSize = this.pageSize;
  868. this.loading = true;
  869. var _self = this;
  870. request.post('/bis/insp/planMonth/getPageInfo',this.searchForm).then(res=>{
  871. if(res.success){
  872. this.tableData = res.data;
  873. // this.total = res.data.total;
  874. _self.loading = false;
  875. }else{
  876. _self.$message.warning(res.message)
  877. }
  878. })
  879. },
  880. handleCurrentChange(val){
  881. this.pageNum = val;
  882. this.initTableData();
  883. },
  884. handleSizeChange(val){
  885. this.pageSize = val;
  886. this.initTableData();
  887. },
  888. searchBtn(){
  889. this.isOne = false;
  890. this.initTableData();
  891. },
  892. oneDel(){
  893. this.isOne = true;
  894. this.initTableData();
  895. },
  896. lookOver(obj){
  897. this.detailObj = obj;
  898. this.detailObj.chkMonth = this.detailObj.chkMonth?this.formatDate1(this.detailObj,{property:"chkMonth"},null,null):"";
  899. this.detailObj.planSttm = this.detailObj.planSttm?this.formatDate(this.detailObj,{property:"planSttm"},null,null):"";
  900. this.detailObj.planEntm = this.detailObj.planEntm?this.formatDate(this.detailObj,{property:"planEntm"},null,null):"";
  901. this.detailDialogVisible = true;
  902. },
  903. addBtn(){
  904. this.addForm = {};
  905. this.addDialogVisible = true;
  906. this.dialogT = "添加"
  907. }
  908. }
  909. }
  910. </script>
  911. <style lang="scss" scoped>
  912. table{
  913. width: 100%;
  914. height:100%;
  915. border-collapse: collapse;
  916. margin-bottom: 30px;
  917. }
  918. table tr td{
  919. border:1px solid #cecece;
  920. height:35px;
  921. text-indent: 15px;
  922. padding-right: 15px;
  923. }
  924. table tr td:first-child{
  925. background: #f2f1f1;
  926. width: 260px;
  927. text-align: right;
  928. }
  929. .title_monthReport /deep/ .el-input__inner{
  930. border:0px;
  931. font-size: 20px !important;
  932. color:black;
  933. }
  934. .monthReport{
  935. width: 100%;
  936. height:100%;
  937. margin: 0;
  938. padding: 0;
  939. }
  940. .box-card{
  941. width: calc(100% - 60px);
  942. height:calc(100% - 20px);
  943. margin: 0 auto;
  944. margin-top: 10px;
  945. }
  946. .title_monthReport{
  947. text-align: center;
  948. padding: 10px;
  949. }
  950. .note_monthReport{
  951. width: 100%;
  952. background-color: rgba(255, 251, 230, 1);
  953. box-sizing: border-box;
  954. border-width: 1px;
  955. border-style: solid;
  956. border-color: rgba(255, 229, 143, 1);
  957. color: rgba(0, 0, 0, 0.447058823529412);
  958. font-size: 14px;
  959. padding: 10px;
  960. }
  961. .note_monthReport p:first-child{
  962. font-size: 16px !important;
  963. }
  964. .monthReport{
  965. .demo-form-inline{
  966. .el-form-item{
  967. margin-bottom: 5px;
  968. margin-top: 8px;
  969. }
  970. }
  971. }
  972. </style>