QcSsgqzysytdqkList_glyy.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  1. <template>
  2. <a-card :bordered="false">
  3. <!-- 查询区域 -->
  4. <div class="table-page-search-wrapper">
  5. <a-form layout="inline" @keyup.enter.native="searchQuery">
  6. <a-row :gutter="24">
  7. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  8. <a-form-item label="单位名称">
  9. <a-input placeholder="请输入单位名称" v-model="queryParam.createBy" />
  10. </a-form-item>
  11. </a-col>
  12. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  13. <a-form-item label="地块名称">
  14. <a-input placeholder="请输入地块名称" v-model="queryParam.dk"></a-input>
  15. </a-form-item>
  16. </a-col>
  17. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  18. <a-form-item label="地块编号">
  19. <a-input placeholder="请输入地块编号" v-model="queryParam.dkbh"></a-input>
  20. </a-form-item>
  21. </a-col>
  22. <a-col :xl="4" :lg="7" :md="8" :sm="24">
  23. <a-form-item label="行政区划">
  24. <JAreaSelect ref="JArea" @Area="SelectArea"></JAreaSelect>
  25. </a-form-item>
  26. </a-col>
  27. <template v-if="toggleSearchStatus">
  28. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  29. <a-form-item label="是否存在矢量">
  30. <j-dict-select-tag placeholder="请选择是否存在矢量" v-model="queryParam.sfczslsj" dictCode="sfgyz" />
  31. </a-form-item>
  32. </a-col>
  33. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  34. <a-form-item label="文件编号">
  35. <a-input placeholder="请输入证书/合同/文件编号" v-model="queryParam.wjbh"></a-input>
  36. </a-form-item>
  37. </a-col>
  38. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  39. <a-form-item label="证书类型">
  40. <j-multi-select-tag placeholder="请选择证书类型" v-model="queryParam.zslx" dictCode="zslx" />
  41. </a-form-item>
  42. </a-col>
  43. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  44. <a-form-item label="批准用途">
  45. <j-category-select v-model="queryParam.pzyt" pcode="A04" placeholder="请选择批准用途" />
  46. </a-form-item>
  47. </a-col>
  48. <a-col :xl="4" :lg="7" :md="8" :sm="24">
  49. <a-form-item label="主管单位">
  50. <j-multi-select-tag placeholder="请选择主管单位" v-model="queryParam.sysOrgCode" dictCode="zgbm" />
  51. </a-form-item>
  52. </a-col>
  53. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  54. <a-form-item label="是否通过审核">
  55. <j-dict-select-tag placeholder="请选择是否通过审核" v-model="queryParam.shzt" dictCode="shzt" />
  56. </a-form-item>
  57. </a-col>
  58. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  59. <a-form-item label="取得方式">
  60. <j-multi-select-tag
  61. type="list_multi"
  62. v-model="queryParam.syqsyfs"
  63. dictCode="qdfs"
  64. placeholder="请选择使用权使用方式"
  65. />
  66. </a-form-item>
  67. </a-col>
  68. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  69. <a-form-item label="使用现状">
  70. <j-dict-select-tag
  71. type="list"
  72. v-model="queryParam.tdsyxz"
  73. dictCode="tdsyxz"
  74. placeholder="请选择土地使用现状"
  75. />
  76. </a-form-item>
  77. </a-col>
  78. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  79. <a-form-item label="是否上报">
  80. <j-dict-select-tag placeholder="请选择是否上报" v-model="queryParam.sfsb" dictCode="xxsbzt" />
  81. </a-form-item>
  82. </a-col>
  83. <a-col :xl="4" :lg="7" :md="8" :sm="24">
  84. <a-form-item label="入库年份">
  85. <a-select v-model="queryParam.year" placeholder="请选择入库年份">
  86. <a-select-option :value="undefined">请选择</a-select-option>
  87. <a-select-option v-for="item in yearList" :key="item" :value="item">
  88. {{ item }}
  89. </a-select-option>
  90. </a-select>
  91. </a-form-item>
  92. </a-col>
  93. <a-col :xl="5" :lg="7" :md="8" :sm="24">
  94. <a-form-item label="土地使用权人">
  95. <a-input placeholder="请输入土地使用权人" v-model="queryParam.tdsyqr"></a-input>
  96. </a-form-item>
  97. </a-col>
  98. </template>
  99. <a-col :xl="3" :lg="7" :md="8" :sm="24">
  100. <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
  101. <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
  102. <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
  103. <a @click="handleToggleSearch" style="margin-left: 8px">
  104. {{ toggleSearchStatus ? '收起' : '展开' }}
  105. <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
  106. </a>
  107. </span>
  108. </a-col>
  109. </a-row>
  110. </a-form>
  111. </div>
  112. <!-- 查询区域-END -->
  113. <!-- 操作按钮区域 -->
  114. <div class="table-operator">
  115. <!-- <a-button v-has="'conts:add'"@click="handleAdd2" type="primary" icon="plus">填报信息</a-button>-->
  116. <a-button type="primary" icon="download" @click="handleExportXls('省直单位占有使用土地情况调查')">导出</a-button>
  117. <a-button type="primary" icon="download" @click="handleExportXls('省直单位占有使用土地情况调查')"
  118. >全部导出
  119. </a-button>
  120. <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
  121. <a-button type="primary" icon="import">导入</a-button>
  122. </a-upload>
  123. &lt;!&ndash; 高级查询区域 &ndash;&gt;
  124. <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
  125. <a-dropdown v-if="selectedRowKeys.length > 0">
  126. <a-menu slot="overlay">
  127. <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
  128. </a-menu>
  129. <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
  130. </a-dropdown>-->
  131. </div>
  132. <!-- table区域-begin -->
  133. <div>
  134. <div class="ant-alert ant-alert-info">
  135. <a-row>
  136. <a-col :span="6">
  137. <div class='cho'>
  138. <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  139. <a style="font-weight: 600">{{ selectedRowKeys.length }}</a
  140. >项
  141. <a style="margin-left: 24px" @click="onClearSelected">清空</a>
  142. </div>
  143. </a-col>
  144. <a-col :span="9"></a-col>
  145. <!--省直单位-->
  146. <a-col :span="9">
  147. <a-row >
  148. <a-col :span="12">
  149. <div class="szdk">
  150. <span><img src='./img/dk.png' style='margin-left: 10px;margin-right: 10px'/></span>
  151. <span style='color: rgb(50,150,255);font-size: 16px'>地块数量(块)</span>
  152. <span style='margin-left: 30px;color: rgb(50,150,255);font-size: 16px'>{{ countDk }}</span>
  153. </div>
  154. <!-- <a-statistic title="地块数量" v-model="countDk" />-->
  155. </a-col>
  156. <a-col :span="12">
  157. <div class="szarea">
  158. <span><img src='./img/area.png' style='margin-left: 10px;margin-right: 10px'/></span>
  159. <span style='color: rgb(30,196,146);font-size: 16px'>地块面积(亩)</span>
  160. <span style='margin-left: 10px;color: rgb(30,196,146);font-size: 16px'>{{ areaDk }}</span>
  161. </div>
  162. </a-col>
  163. </a-row>
  164. </a-col>
  165. </a-row>
  166. </div>
  167. <a-tabs :active-key="this.changes" @change="callback">
  168. <a-tab-pane key="2" tab="统计图表" force-render>
  169. <listTabBySz ref="table" :loading="this.load" :result-data="this.resultData"></listTabBySz>
  170. </a-tab-pane>
  171. <a-tab-pane key="1" tab="列表信息">
  172. <a-table
  173. ref="table"
  174. size="middle"
  175. :scroll="{ x: true }"
  176. bordered
  177. rowKey="id"
  178. :columns="columns"
  179. :dataSource="dataSource"
  180. :pagination="ipagination"
  181. :loading="loading"
  182. :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
  183. class="j-table-force-nowrap"
  184. @change="handleTableChange"
  185. >
  186. <template slot="htmlSlot" slot-scope="text">
  187. <div v-html="text"></div>
  188. </template>
  189. <template slot="imgSlot" slot-scope="text, record">
  190. <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
  191. <img
  192. v-else
  193. :src="getImgView(text)"
  194. :preview="record.id"
  195. height="25px"
  196. alt=""
  197. style="max-width:80px;font-size: 12px;font-style: italic;"
  198. />
  199. </template>
  200. <template slot="fileSlot" slot-scope="text">
  201. <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
  202. <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
  203. 下载
  204. </a-button>
  205. </template>
  206. <span slot="action" slot-scope="text, record">
  207. <a-space>
  208. <a-button v-if="record.sfsb < 3" @click="handleEdit(record)">编辑</a-button>
  209. <a-button v-if="record.sfsb == 3" @click="handleEdit(record)">重新审核</a-button>
  210. <a-button @click="handleDetail(record)" type="primary">查看</a-button>
  211. <!-- <a-button v-if="record.sfsb===3" @click="handleWCSH(record.id)">完成审核</a-button>-->
  212. <a-popconfirm title="确定恢复么吗?" @confirm="() => handleHFYSH(record.id)">
  213. <a-button v-if="record.sfsb === 4">恢复为已审核</a-button>
  214. </a-popconfirm>
  215. </a-space>
  216. </span>
  217. </a-table>
  218. </a-tab-pane>
  219. </a-tabs>
  220. </div>
  221. <qc-ssgqzysytdqk-modal ref="modalForm" @ok="modalFormOk"></qc-ssgqzysytdqk-modal>
  222. </a-card>
  223. </template>
  224. <script>
  225. import '@/assets/less/TableExpand.less'
  226. import { mixinDevice } from '@/utils/mixin'
  227. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  228. import QcSsgqzysytdqkModal from './modules/QcSsgqzysytdqkModal2'
  229. import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  230. import { getAction } from '../../api/manage'
  231. import { loadCategoryData } from '@/api/api'
  232. import JAreaSelect from '@comp/jeecg/JAreaSelect'
  233. import listTabBySz from '@/views/listStatistics/listTabBySz'
  234. import store from '@/store'
  235. export default {
  236. name: 'QcSsgqzysytdqkList',
  237. mixins: [JeecgListMixin, mixinDevice],
  238. props: {
  239. yearList: {
  240. type: Array,
  241. required: true
  242. }
  243. },
  244. components: {
  245. QcSsgqzysytdqkModal,
  246. JAreaSelect,
  247. listTabBySz
  248. },
  249. data() {
  250. return {
  251. countDk: 0,
  252. areaDk: 0,
  253. dlr: false,
  254. resultData: [],
  255. description: '省属国企占有使用土地情况调查管理页面',
  256. load: true,
  257. changes: '2',
  258. // 表头
  259. columns: [
  260. {
  261. title: '#',
  262. dataIndex: '',
  263. key: 'rowIndex',
  264. width: 60,
  265. align: 'center',
  266. customRender: function(t, r, index) {
  267. return parseInt(index) + 1
  268. }
  269. },
  270. {
  271. title: '用地单位名称',
  272. align: 'center',
  273. dataIndex: 'createBy'
  274. },
  275. {
  276. title: '地块',
  277. align: 'center',
  278. dataIndex: 'dk'
  279. },
  280. {
  281. title: '证书类型',
  282. align: 'center',
  283. dataIndex: 'zslx_dictText'
  284. },
  285. {
  286. title: '证书/合同/文件编号',
  287. align: 'center',
  288. dataIndex: 'wjbh'
  289. },
  290. {
  291. title: '土地使用权人',
  292. align: 'center',
  293. dataIndex: 'tdsyqr'
  294. },
  295. {
  296. title: '使用权使用方式',
  297. align: 'center',
  298. dataIndex: 'syqsyfs_dictText'
  299. },
  300. {
  301. title: '实际用途',
  302. align: 'center',
  303. dataIndex: 'sjyt',
  304. customRender: text => (text ? filterMultiDictText(this.dictOptions['sjyt'], text) : '')
  305. },
  306. {
  307. title: '是否上报',
  308. align: 'center',
  309. dataIndex: 'sfsb_dictText'
  310. },
  311. {
  312. title: '操作',
  313. dataIndex: 'action',
  314. align: 'center',
  315. fixed: 'right',
  316. width: 147,
  317. scopedSlots: { customRender: 'action' }
  318. }
  319. ],
  320. url: {
  321. list: '/qcsb/qcSsgqzysytdqk/listByglyy',
  322. delete: '/qcsb/qcSsgqzysytdqk/delete',
  323. deleteBatch: '/qcsb/qcSsgqzysytdqk/deleteBatch',
  324. exportXlsUrl: '/qcsb/qcSsgqzysytdqk/exportXls3',
  325. importExcelUrl: 'qcsb/qcSsgqzysytdqk/importExcel',
  326. wcsh: '/qcsb/qcSsgqzysytdqk/wcsh',
  327. hfysh: '/qcsb/qcSsgqzysytdqk/hfysh',
  328. listTable: '/qcsb/qcSsgqzysytdqk/sumListBysz',
  329. listQuery: '/qcsb/qcSsgqzysytdqk/listByglyyCount'
  330. },
  331. dictOptions: {},
  332. superFieldList: []
  333. }
  334. },
  335. created() {
  336. this.getSuperFieldList()
  337. },
  338. mounted() {
  339. this.show()
  340. },
  341. computed: {
  342. importExcelUrl: function() {
  343. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  344. }
  345. },
  346. methods: {
  347. searchQuery() {
  348. this.changes = '1'
  349. this.loadData('1')
  350. this.queryDkInfo()
  351. // 点击查询清空列表选中行
  352. //https://gitee.com/jeecg/jeecg-boot/issues/I4KTU1
  353. this.selectedRowKeys = []
  354. this.selectionRows = []
  355. },
  356. // 查询地块和面积统计
  357. queryDkInfo() {
  358. console.log('查询地块和面积')
  359. let _this = this
  360. new Promise(function(resolve, reject) {
  361. getAction(_this.url.listQuery, _this.queryParam).then(res => {
  362. if (res.success) {
  363. _this.countDk = res.result.countDk
  364. _this.areaDk = res.result.areaDk
  365. resolve()
  366. }
  367. })
  368. })
  369. },
  370. updataData() {
  371. console.log('执行钩子1')
  372. let _this = this
  373. new Promise(function(resolve, reject) {
  374. getAction(_this.url.listTable, _this.queryParam).then(res => {
  375. if (res.success) {
  376. _this.resultData = res.result
  377. _this.load = false
  378. resolve()
  379. }
  380. })
  381. })
  382. },
  383. callback(key) {
  384. if (key == 1) {
  385. this.emptyData()
  386. this.changes = '1'
  387. }
  388. if (key == 2) {
  389. this.changes = '2'
  390. this.updataData()
  391. }
  392. },
  393. SelectArea(val) {
  394. if (val.length > 4) {
  395. this.queryParam.xzqh = val + '*'
  396. } else {
  397. this.queryParam.xzqh = val.slice(0, 4) + '*'
  398. }
  399. },
  400. emptyData() {
  401. this.load = true
  402. this.$refs.table.data = []
  403. this.$refs.table.areaData = []
  404. this.$refs.table.pieResultData = []
  405. this.$refs.table.pieAreaResultData = []
  406. this.$refs.table.DoughnutResultData = []
  407. this.$refs.table.doughnutByXzResultData = []
  408. this.$refs.table.xzData = []
  409. this.$refs.table.registerData = []
  410. this.$refs.table.barResultData = []
  411. this.$refs.table.nan = []
  412. this.$refs.table.va = []
  413. this.$refs.table.xqData = []
  414. this.$refs.table.sjytData = []
  415. this.$refs.table.sjytValue = []
  416. this.$refs.table.sjytName = []
  417. this.$refs.table.barBysjytResultData = []
  418. this.$refs.table.number = 0
  419. },
  420. searchReset() {
  421. this.$refs.JArea.allClear()
  422. this.queryParam = {}
  423. this.changes = '1'
  424. this.loadData()
  425. this.queryDkInfo()
  426. },
  427. show() {
  428. getAction('/qcsb.qyxx/qcQyxx/dlr').then(res => {
  429. if (res.success) {
  430. if (res.result == 'gzw') {
  431. this.dl = true
  432. }
  433. }
  434. })
  435. },
  436. handleWCSH(id) {
  437. getAction(this.url.wcsh, { id: id }).then(res => {
  438. if (res.success) {
  439. this.$message.success('审核完成')
  440. this.loadData()
  441. }
  442. })
  443. },
  444. handleHFYSH(id) {
  445. getAction(this.url.hfysh, { id: id }).then(res => {
  446. if (res.success) {
  447. this.$message.success('已经恢复')
  448. this.loadData()
  449. }
  450. })
  451. },
  452. initDictConfig() {
  453. loadCategoryData({ code: 'A04' }).then(res => {
  454. if (res.success) {
  455. console.log(res.result)
  456. this.$set(this.dictOptions, 'sjyt', res.result)
  457. }
  458. })
  459. },
  460. // 字段列表
  461. getSuperFieldList() {
  462. let fieldList = []
  463. fieldList.push({ type: 'string', value: 'dk', text: '地块', dictCode: '' })
  464. fieldList.push({ type: 'string', value: 'wjlx', text: '文件类型', dictCode: 'wjlx' })
  465. fieldList.push({ type: 'string', value: 'wjbh', text: '证书/合同/文件编号', dictCode: '' })
  466. fieldList.push({ type: 'string', value: 'tdsyqr', text: '土地使用权人', dictCode: '' })
  467. fieldList.push({ type: 'double', value: 'sjzytdmj', text: '实际占用土地面积', dictCode: '' })
  468. fieldList.push({ type: 'double', value: 'qzpzsymj', text: '其中批准使用面积', dictCode: '' })
  469. fieldList.push({ type: 'double', value: 'sjsyjzmj', text: '实际使用建筑面积', dictCode: '' })
  470. fieldList.push({ type: 'double', value: 'qzpzsymj2', text: '其中批准使用面积', dictCode: '' })
  471. fieldList.push({ type: 'double', value: 'sjrjl', text: '容积率', dictCode: '' })
  472. fieldList.push({ type: 'string', value: 'syqsyfs', text: '使用权使用方式', dictCode: 'syqsyfs' })
  473. fieldList.push({ type: 'string', value: 'zlwz', text: '坐落位置', dictCode: '' })
  474. fieldList.push({ type: 'string', value: 'sjyt', text: '实际用途', dictCode: 'tdyt' })
  475. fieldList.push({ type: 'date', value: 'qsqssj', text: '权属起始时间' })
  476. fieldList.push({ type: 'date', value: 'qsdqsj', text: '权属到期时间' })
  477. fieldList.push({ type: 'string', value: 'tdsyxz', text: '土地使用现状', dictCode: 'tdsyxz' })
  478. fieldList.push({
  479. type: 'list_multi',
  480. value: 'dbdycfqk',
  481. text: '担保、抵押、查封情况',
  482. dictTable: '',
  483. dictText: '',
  484. dictCode: 'dbdycfqk'
  485. })
  486. fieldList.push({ type: 'string', value: 'bz', text: '备注', dictCode: '' })
  487. fieldList.push({ type: 'string', value: 'xgwj', text: '附件材料', dictCode: '' })
  488. fieldList.push({ type: 'int', value: 'sfsb', text: '是否上报', dictCode: 'xxsbzt' })
  489. this.superFieldList = fieldList
  490. }
  491. }
  492. }
  493. </script>
  494. <style scoped>
  495. @import '~@assets/less/common.less';
  496. .cho {
  497. display: flex;
  498. width: 100%;
  499. height: 36px;
  500. align-items: center; /* 垂直居中 */
  501. }
  502. .szdk {
  503. background-image: url('./img/dk_back.png');
  504. display: flex;
  505. width: 100%;
  506. height: 36px;
  507. //background-size: cover;
  508. background-size: contain;
  509. background-repeat: no-repeat;
  510. align-items: center; /* 垂直居中 */
  511. }
  512. .szarea {
  513. background-image: url('./img/area_back.png');
  514. display: flex;
  515. width: 100%;
  516. height: 36px;
  517. background-size: contain;
  518. background-repeat: no-repeat;
  519. align-items: center; /* 垂直居中 */
  520. margin-left: 7px;
  521. }
  522. </style>