QcSsgqzysytdqkList_glyy.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  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="11">
  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;width: 130px">地块数量(块)</span>
  152. <span style='margin-right: 20px;text-align:right; color: rgb(50,150,255);font-size: 16px;width: calc(100% - 174px);'>{{ countDk }}</span>
  153. </div>
  154. </a-col>
  155. <a-col :span="13">
  156. <div class="szarea">
  157. <span><img src='./img/area.png' style='margin-left: 10px;margin-right: 10px'/></span>
  158. <span style='color: rgb(30,196,146);font-size: 16px;width: 130px'>地块面积(亩)</span>
  159. <span style='margin-right: 20px;text-align:right;color: rgb(30,196,146);font-size: 16px;width:calc(100% - 174px);'>{{ areaDk }}</span>
  160. </div>
  161. </a-col>
  162. </a-row>
  163. </a-col>
  164. </a-row>
  165. </div>
  166. <a-tabs :active-key="this.changes" @change="callback">
  167. <a-tab-pane key="2" tab="统计图表" force-render>
  168. <listTabBySz ref="table" :loading="this.load" :result-data="this.resultData"></listTabBySz>
  169. </a-tab-pane>
  170. <a-tab-pane key="1" tab="列表信息">
  171. <a-table
  172. ref="table"
  173. size="middle"
  174. :scroll="{ x: true }"
  175. bordered
  176. rowKey="id"
  177. :columns="columns"
  178. :dataSource="dataSource"
  179. :pagination="ipagination"
  180. :loading="loading"
  181. :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
  182. class="j-table-force-nowrap"
  183. @change="handleTableChange"
  184. >
  185. <template slot="htmlSlot" slot-scope="text">
  186. <div v-html="text"></div>
  187. </template>
  188. <template slot="imgSlot" slot-scope="text, record">
  189. <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
  190. <img
  191. v-else
  192. :src="getImgView(text)"
  193. :preview="record.id"
  194. height="25px"
  195. alt=""
  196. style="max-width:80px;font-size: 12px;font-style: italic;"
  197. />
  198. </template>
  199. <template slot="fileSlot" slot-scope="text">
  200. <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
  201. <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
  202. 下载
  203. </a-button>
  204. </template>
  205. <span slot="action" slot-scope="text, record">
  206. <a-space>
  207. <a-button v-if="record.sfsb < 3" @click="handleEdit(record)">编辑</a-button>
  208. <!-- <a-button v-if="record.sfsb == 3" @click="handleEdit(record)">重新审核</a-button> -->
  209. <a-button @click="handleDetail(record)" type="primary">查看</a-button>
  210. <!-- <a-button v-if="record.sfsb===3" @click="handleWCSH(record.id)">完成审核</a-button>-->
  211. <a-popconfirm title="确定恢复么吗?" @confirm="() => handleHFYSH(record.id)">
  212. <a-button v-if="record.sfsb === 4">恢复为已审核</a-button>
  213. </a-popconfirm>
  214. </a-space>
  215. </span>
  216. </a-table>
  217. </a-tab-pane>
  218. </a-tabs>
  219. </div>
  220. <qc-ssgqzysytdqk-modal ref="modalForm" @ok="modalFormOk"></qc-ssgqzysytdqk-modal>
  221. </a-card>
  222. </template>
  223. <script>
  224. import '@/assets/less/TableExpand.less'
  225. import { mixinDevice } from '@/utils/mixin'
  226. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  227. import QcSsgqzysytdqkModal from './modules/QcSsgqzysytdqkModal2'
  228. import { filterMultiDictText } from '@/components/dict/JDictSelectUtil'
  229. import { getAction } from '../../api/manage'
  230. import { loadCategoryData } from '@/api/api'
  231. import JAreaSelect from '@comp/jeecg/JAreaSelect'
  232. import listTabBySz from '@/views/listStatistics/listTabBySz'
  233. import store from '@/store'
  234. export default {
  235. name: 'QcSsgqzysytdqkList',
  236. mixins: [JeecgListMixin, mixinDevice],
  237. props: {
  238. yearList: {
  239. type: Array,
  240. required: true
  241. }
  242. },
  243. components: {
  244. QcSsgqzysytdqkModal,
  245. JAreaSelect,
  246. listTabBySz
  247. },
  248. data() {
  249. return {
  250. countDk: 0,
  251. areaDk: 0,
  252. dlr: false,
  253. resultData: [],
  254. description: '省属国企占有使用土地情况调查管理页面',
  255. load: true,
  256. changes: '2',
  257. // 表头
  258. columns: [
  259. {
  260. title: '#',
  261. dataIndex: '',
  262. key: 'rowIndex',
  263. width: 60,
  264. align: 'center',
  265. customRender: function(t, r, index) {
  266. return parseInt(index) + 1
  267. }
  268. },
  269. {
  270. title: '用地单位名称',
  271. align: 'center',
  272. dataIndex: 'createBy'
  273. },
  274. {
  275. title: '地块',
  276. align: 'center',
  277. dataIndex: 'dk'
  278. },
  279. {
  280. title: '证书类型',
  281. align: 'center',
  282. dataIndex: 'zslx_dictText'
  283. },
  284. {
  285. title: '证书/合同/文件编号',
  286. align: 'center',
  287. dataIndex: 'wjbh'
  288. },
  289. {
  290. title: '土地使用权人',
  291. align: 'center',
  292. dataIndex: 'tdsyqr'
  293. },
  294. {
  295. title: '使用权使用方式',
  296. align: 'center',
  297. dataIndex: 'syqsyfs'
  298. },
  299. {
  300. title: '实际用途',
  301. align: 'center',
  302. dataIndex: 'sjyt',
  303. customRender: text => (text ? filterMultiDictText(this.dictOptions['sjyt'], text) : '')
  304. },
  305. {
  306. title: '土地价值/元',
  307. align: "center",
  308. dataIndex: 'worth'
  309. },
  310. // {
  311. // title: '是否上报',
  312. // align: 'center',
  313. // dataIndex: 'sfsb_dictText'
  314. // },
  315. {
  316. title: '操作',
  317. dataIndex: 'action',
  318. align: 'center',
  319. fixed: 'right',
  320. width: 147,
  321. scopedSlots: { customRender: 'action' }
  322. }
  323. ],
  324. url: {
  325. list: '/qcsb/qcSsgqzysytdqk/listByglyy',
  326. delete: '/qcsb/qcSsgqzysytdqk/delete',
  327. deleteBatch: '/qcsb/qcSsgqzysytdqk/deleteBatch',
  328. exportXlsUrl: '/qcsb/qcSsgqzysytdqk/exportXls3',
  329. importExcelUrl: 'qcsb/qcSsgqzysytdqk/importExcel',
  330. wcsh: '/qcsb/qcSsgqzysytdqk/wcsh',
  331. hfysh: '/qcsb/qcSsgqzysytdqk/hfysh',
  332. listTable: '/qcsb/qcSsgqzysytdqk/sumListBysz',
  333. listQuery: '/qcsb/qcSsgqzysytdqk/listByglyyCount'
  334. },
  335. dictOptions: {},
  336. superFieldList: []
  337. }
  338. },
  339. created() {
  340. this.getSuperFieldList()
  341. },
  342. mounted() {
  343. this.show()
  344. },
  345. computed: {
  346. importExcelUrl: function() {
  347. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  348. }
  349. },
  350. methods: {
  351. searchQuery() {
  352. this.changes = '1'
  353. this.loadData('1')
  354. this.queryDkInfo()
  355. // 点击查询清空列表选中行
  356. //https://gitee.com/jeecg/jeecg-boot/issues/I4KTU1
  357. this.selectedRowKeys = []
  358. this.selectionRows = []
  359. },
  360. // 查询地块和面积统计
  361. queryDkInfo() {
  362. console.log('查询地块和面积')
  363. let _this = this
  364. new Promise(function(resolve, reject) {
  365. getAction(_this.url.listQuery, _this.queryParam).then(res => {
  366. if (res.success) {
  367. _this.countDk = res.result.countDk
  368. _this.areaDk = res.result.areaDk.toFixed(4)
  369. resolve()
  370. }
  371. })
  372. })
  373. },
  374. updataData() {
  375. console.log('执行钩子1')
  376. let _this = this
  377. new Promise(function(resolve, reject) {
  378. getAction(_this.url.listTable, _this.queryParam).then(res => {
  379. if (res.success) {
  380. _this.resultData = res.result
  381. _this.load = false
  382. resolve()
  383. }
  384. })
  385. })
  386. },
  387. callback(key) {
  388. if (key == 1) {
  389. this.emptyData()
  390. this.changes = '1'
  391. }
  392. if (key == 2) {
  393. this.changes = '2'
  394. this.updataData()
  395. }
  396. },
  397. SelectArea(val) {
  398. if (val.length > 4) {
  399. this.queryParam.xzqh = val + '*'
  400. } else {
  401. this.queryParam.xzqh = val.slice(0, 4) + '*'
  402. }
  403. },
  404. emptyData() {
  405. this.load = true
  406. this.$refs.table.data = []
  407. this.$refs.table.areaData = []
  408. this.$refs.table.pieResultData = []
  409. this.$refs.table.pieAreaResultData = []
  410. this.$refs.table.DoughnutResultData = []
  411. this.$refs.table.doughnutByXzResultData = []
  412. this.$refs.table.xzData = []
  413. this.$refs.table.registerData = []
  414. this.$refs.table.barResultData = []
  415. this.$refs.table.nan = []
  416. this.$refs.table.va = []
  417. this.$refs.table.xqData = []
  418. this.$refs.table.sjytData = []
  419. this.$refs.table.sjytValue = []
  420. this.$refs.table.sjytName = []
  421. this.$refs.table.barBysjytResultData = []
  422. this.$refs.table.number = 0
  423. },
  424. searchReset() {
  425. this.$refs.JArea.allClear()
  426. this.queryParam = {}
  427. this.changes = '1'
  428. this.loadData()
  429. this.queryDkInfo()
  430. },
  431. show() {
  432. getAction('/qcsb.qyxx/qcQyxx/dlr').then(res => {
  433. if (res.success) {
  434. if (res.result == 'gzw') {
  435. this.dl = true
  436. }
  437. }
  438. })
  439. },
  440. handleWCSH(id) {
  441. getAction(this.url.wcsh, { id: id }).then(res => {
  442. if (res.success) {
  443. this.$message.success('审核完成')
  444. this.loadData()
  445. }
  446. })
  447. },
  448. handleHFYSH(id) {
  449. getAction(this.url.hfysh, { id: id }).then(res => {
  450. if (res.success) {
  451. this.$message.success('已经恢复')
  452. this.loadData()
  453. }
  454. })
  455. },
  456. initDictConfig() {
  457. loadCategoryData({ code: 'A04' }).then(res => {
  458. if (res.success) {
  459. console.log(res.result)
  460. this.$set(this.dictOptions, 'sjyt', res.result)
  461. }
  462. })
  463. },
  464. // 字段列表
  465. getSuperFieldList() {
  466. let fieldList = []
  467. fieldList.push({ type: 'string', value: 'dk', text: '地块', dictCode: '' })
  468. fieldList.push({ type: 'string', value: 'wjlx', text: '文件类型', dictCode: 'wjlx' })
  469. fieldList.push({ type: 'string', value: 'wjbh', text: '证书/合同/文件编号', dictCode: '' })
  470. fieldList.push({ type: 'string', value: 'tdsyqr', text: '土地使用权人', dictCode: '' })
  471. fieldList.push({ type: 'double', value: 'sjzytdmj', text: '实际占用土地面积', dictCode: '' })
  472. fieldList.push({ type: 'double', value: 'qzpzsymj', text: '其中批准使用面积', dictCode: '' })
  473. fieldList.push({ type: 'double', value: 'sjsyjzmj', text: '实际使用建筑面积', dictCode: '' })
  474. fieldList.push({ type: 'double', value: 'qzpzsymj2', text: '其中批准使用面积', dictCode: '' })
  475. fieldList.push({ type: 'double', value: 'sjrjl', text: '容积率', dictCode: '' })
  476. fieldList.push({ type: 'string', value: 'syqsyfs', text: '使用权使用方式', dictCode: 'syqsyfs' })
  477. fieldList.push({ type: 'string', value: 'zlwz', text: '坐落位置', dictCode: '' })
  478. fieldList.push({ type: 'string', value: 'sjyt', text: '实际用途', dictCode: 'tdyt' })
  479. fieldList.push({ type: 'date', value: 'qsqssj', text: '权属起始时间' })
  480. fieldList.push({ type: 'date', value: 'qsdqsj', text: '权属到期时间' })
  481. fieldList.push({ type: 'string', value: 'tdsyxz', text: '土地使用现状', dictCode: 'tdsyxz' })
  482. fieldList.push({
  483. type: 'list_multi',
  484. value: 'dbdycfqk',
  485. text: '担保、抵押、查封情况',
  486. dictTable: '',
  487. dictText: '',
  488. dictCode: 'dbdycfqk'
  489. })
  490. fieldList.push({ type: 'string', value: 'bz', text: '备注', dictCode: '' })
  491. fieldList.push({ type: 'string', value: 'xgwj', text: '附件材料', dictCode: '' })
  492. fieldList.push({ type: 'int', value: 'sfsb', text: '是否上报', dictCode: 'xxsbzt' })
  493. this.superFieldList = fieldList
  494. }
  495. }
  496. }
  497. </script>
  498. <style scoped>
  499. @import '~@assets/less/common.less';
  500. .cho {
  501. display: flex;
  502. width: 100%;
  503. height: 36px;
  504. align-items: center; /* 垂直居中 */
  505. }
  506. .szdk {
  507. background-color: #ffffff;
  508. border-style: solid;
  509. border-width: 1px;
  510. border-radius: 5px;
  511. border-color:#3297FF;
  512. display: flex;
  513. width: calc(100% - 2px);
  514. height: 36px;
  515. background-size: contain;
  516. background-repeat: no-repeat;
  517. align-items: center; /* 垂直居中 */
  518. }
  519. .szarea {
  520. background-color: #ffffff;
  521. border-style: solid;
  522. border-width: 1px;
  523. border-radius: 5px;
  524. border-color:#1FC493;
  525. display: flex;
  526. width: 100%;
  527. height: 36px;
  528. background-size: contain;
  529. background-repeat: no-repeat;
  530. align-items: center; /* 垂直居中 */
  531. margin-left: 7px;
  532. }
  533. </style>