Browse Source

三资监管新增、列表

haha_sir 10 months ago
parent
commit
17a7310702

File diff suppressed because it is too large
+ 1639 - 3277
package-lock.json


+ 0 - 1
package.json

@@ -9,7 +9,6 @@
     "preview": "vite preview"
   },
   "dependencies": {
-
     "axios": "^1.3.3",
     "echarts": "^5.4.2",
     "@element-plus/icons-vue": "^2.1.0",

+ 49 - 0
src/api/szjg/supervise-szksh.js

@@ -0,0 +1,49 @@
+import request, { setConfigInstance } from "../index";
+/* *********补贴情况上传********** */
+// 列表
+export function GetAssetList(params) {
+  return request({
+    url: "/estate/zcksh/list",
+    params: {
+      ...params,
+    },
+    method: "get",
+  });
+}
+
+// 删除
+export function delAssetData(zckshids) {
+  return request({
+    method: "delete",
+  })({
+    url: `/estate/zcksh/delete/${zckshids}`,
+  });
+}
+//导出
+export function getAssetExport(params) {
+  return request({
+    method: "get",
+  })({
+    url: `/estate/zcksh/export`,
+    params: { ...params },
+  });
+}
+
+export function editAssetInfo(zckshid, data) {
+  return request({
+    method: "put",
+    url: `/estate/zcksh/update/${zckshid}`,
+    data: {
+      ...data,
+    },
+  });
+}
+export function addAssetInfo(data) {
+  return request({
+    method: "post",
+    url: `/estate/zcksh/create`,
+    data: {
+      ...data,
+    },
+  });
+}

+ 107 - 65
src/views/zjjgfx/visual-assets/VisualAseetsHome.vue

@@ -5,51 +5,56 @@
       <header>
         <div class="header-row">
           <div class="flex1">
-            <el-input v-model="formInline.questionName" style="width: 18%" placeholder="请输入想要搜索的资产名称" clearable></el-input>
-            <el-select v-model="formInline.town"  style="width: 12%" placeholder="乡镇" clearable>
-              <!-- <el-option value="" label="全部镇"></el-option> -->
-              <el-option v-for="item in allTownArr" :label="item.name" :key="item.code" :value="item.code"></el-option>
+            <el-input v-model="formInline.zcmc" style="width: 18%" placeholder="请输入想要搜索的资产名称" clearable></el-input>
+            <el-select v-model="formInline.xz" style="width: 12%" placeholder="乡镇" clearable>
+              <el-option v-for="item in allTown" :key="item.code" :value="item.code" :label="item.name">
+              </el-option>
             </el-select>
-            <el-select v-model="formInline.town" style="width: 12%" placeholder="现状" clearable>
+            <el-select v-model="formInline.xianzhuang" style="width: 12%" placeholder="现状" clearable>
               <!-- <el-option value="" label="全部镇"></el-option> -->
-              <el-option v-for="item in allTownArr" :label="item.name" :key="item.code" :value="item.code"></el-option>
+              <el-option v-for="item in actualList" :label="item.name" :key="item.code" :value="item.code"></el-option>
             </el-select>
           </div>
           <div>
-            <el-button type="primary" class="btn-default" >查询</el-button>
-            <el-button type="primary" class="btn-default" @click="$emit('changeOperation','add')">新增资产</el-button>
-            <el-button class="btn-default" @click="$emit('changeOperation','add')">导出资产</el-button>
+            <el-button type="primary" class="btn-default" @click="getHomeTableData">查询</el-button>
+            <el-button type="primary" class="btn-default" @click="$emit('changeOperation', 'add')">新增资产</el-button>
+            <el-button class="btn-default" @click="$emit('changeOperation', 'add')">导出资产</el-button>
           </div>
         </div>
       </header>
       <main>
-        <el-table :data="tableData.value" class="table-default" stripe >
-          <el-table-column type="selection" min-width="30"/>
+        <el-table :data="tableData" class="table-default" stripe>
+          <el-table-column type="selection" min-width="30" />
           <el-table-column type="index" label="序号" min-width="50" />
-          <el-table-column label="资产编号" min-width="100" prop="username" show-overflow-tooltip />
-          <el-table-column label="乡镇" min-width="50" prop="nickname" show-overflow-tooltip />
-          <el-table-column label="土地所有方" min-width="120" prop="ssdw" show-overflow-tooltip />
-          <el-table-column label="资产名称" min-width="120" prop="ssks" show-overflow-tooltip />
-          <el-table-column label="建设用地面积(亩)" min-width="120" prop="role" show-overflow-tooltip />
-          <el-table-column label="建设用地面积(亩)" min-width="120" prop="townId" show-overflow-tooltip >
+          <el-table-column label="资产编号" min-width="100" prop="zcbh" show-overflow-tooltip />
+          <el-table-column label="乡镇" min-width="50" prop="xz" show-overflow-tooltip>
+            <!-- <template #default="scope">
+              {{ allTown.find(i => i.code === scope.row.townId)?.name }}
+            </template> -->
+          </el-table-column>
+          <el-table-column label="土地所有方" min-width="120" prop="tdsyf" show-overflow-tooltip />
+          <el-table-column label="资产名称" min-width="120" prop="zcmc" show-overflow-tooltip />
+          <el-table-column label="建设用地面积(亩)" min-width="120" prop="jsydmj" show-overflow-tooltip />
+          <el-table-column label="非建设用地面积(亩)" min-width="120" prop="fjsydmj" show-overflow-tooltip>
           </el-table-column>
-          <el-table-column label="现状" min-width="80" prop="townId" show-overflow-tooltip >
+          <el-table-column label="现状" min-width="80" prop="xianzhuang" show-overflow-tooltip>
           </el-table-column>
           <el-table-column fixed="right" label="操作" min-width="130">
             <template #default="scope">
 
-              <el-button link type="primary">编辑</el-button>
+              <el-button link type="primary" @click="editInfo(scope.row)">编辑</el-button>
 
-              <el-button link type="danger" >删除</el-button>
+              <el-button link type="danger">删除</el-button>
             </template>
 
           </el-table-column>
         </el-table>
-        <Pagination :total="tableTotal" :page-size="pageSize" :current-page="currentPage" @pageChange="pagi_changePage" />
+        <Pagination :total="tableTotal" :page-size="pageSize" :current-page="currentPage"
+          @pageChange="pagi_changePage" />
       </main>
     </div>
     <div class="tool-box-g shadow-box">
-      <img v-for="item in toolsArr" :src="item.picUrl" alt=""  />
+      <img v-for="item in toolsArr" :src="item.picUrl" alt="" />
     </div>
     <div v-show="panelShow.currentLayer" class="current-layer-g shadow-box pos-card-green">
       <header>
@@ -60,9 +65,8 @@
           <li v-for="item in mapLayers" :key="item.id">
             <span>{{ item.name }}</span>
             <div>
-              <i class="btn" :class="item.visible ? 'btn-dqtc-show' : 'btn-dqtc-hide'"
-                ></i>
-              <el-slider v-model="item.opacity" :min="1" ></el-slider>
+              <i class="btn" :class="item.visible ? 'btn-dqtc-show' : 'btn-dqtc-hide'"></i>
+              <el-slider v-model="item.opacity" :min="1"></el-slider>
             </div>
           </li>
         </ul>
@@ -74,7 +78,7 @@
       </header>
       <main>
         <el-descriptions :column="2" direction="horizontal" :border="true" class="des-green">
-          <el-descriptions-item v-for="item in searchData"  :label="item.label">{{ item.label }}</el-descriptions-item>
+          <el-descriptions-item v-for="item in searchData" :label="item.label">{{ item.label }}</el-descriptions-item>
         </el-descriptions>
       </main>
     </div>
@@ -82,16 +86,49 @@
 </template>
 
 <script setup>
-import {nextTick, onMounted, reactive, ref} from "vue";
-import {myBridge} from "@/utils/map/map";
+import { nextTick, onMounted, reactive, ref } from "vue";
+import { myBridge } from "@/utils/map/map";
 import CityGis from "@/utils/map/CityGis.Bridge";
-import {addPointSearch, addPolygons, locateCM} from "@/utils/map/AddLayer";
-import {getAssetsFile} from "@/utils/require";
-import {getLayerByName} from "@/utils/data/all-layer-info";
+import { addPointSearch, addPolygons, locateCM } from "@/utils/map/AddLayer";
+import { getAssetsFile } from "@/utils/require";
+import { getLayerByName } from "@/utils/data/all-layer-info";
 import Pagination from "@/components/Pagination.vue";
-import {getWatchAssetsHomeTableData} from "@/api/szjg/watch-assets";
+import { UseGetAllTownAndVillage } from "@/data/useFunction";
+
+import {
+  GetAssetList,
+  delAssetData,
+  getAssetExport,
+  editAssetInfo,
+  addAssetInfo
+} from "@/api/szjg/supervise-szksh";
+
 let bridge
 let listen
+const { allTown, getVillage } = UseGetAllTownAndVillage()
+
+const actualList = ref([
+  {
+    name: '出租',
+    code: '出租',
+    value: '出租'
+  },
+  {
+    name: '闲置',
+    code: '闲置',
+    value: '闲置'
+  },
+  {
+    name: '部分出租',
+    code: '部分出租',
+    value: '部分出租'
+  },
+  {
+    name: '自用',
+    code: '自用',
+    value: '自用'
+  }
+])
 
 const pageSize = ref(10)
 
@@ -100,28 +137,34 @@ const currentPage = ref(1)
 const formRules = {
 
 }
-function getHomeTableData(){
-  getWatchAssetsHomeTableData({
-    pageNum:currentPage.value,
-    pageSize:pageSize.value,
-    // xianzhuang:
-  }).then(res => {
+function getHomeTableData() {
+  GetAssetList({
+    pageNum: currentPage.value,
+    pageSize: pageSize.value,
+    xianzhuang: formInline.xianzhuang,
+    xz: formInline.xz,
+    zcmc: formInline.zcmc
+  }).then((res) => {
     tableData.value = res.data.list
     tableTotal.value = res.data.total
-    console.log('a的neritic',res.data.total)
+    console.log('a的neritic', res.data.total)
   })
 }
+
+function editInfo(row) {
+  console.log(row)
+}
 function pagi_changePage(page) {
   currentPage.value = page
   getHomeTableData()
 }
 const searchData = ref([
-  {key:'fw_zdmj',label:'实际占地面积(平方米)',interKey:'fwZdmj'},
-  {key:'fw_jzmj',label:'实际建筑面积(平方米)',interKey:'fwJzmj'},
-  {key:'fw_cs',label:'实际层数',interKey:'fwCs'},
-  {key:'fw_jcnf',label:'建成年份/在建',interKey:'fwJcnf'},
-  {key:'fw_syqk',label:'房屋使用情况',interKey:'fwSyqk'},
-  {key:'fw_zyyt',label:'房屋主要用途',interKey:'fwZyyt'},
+  { key: 'fw_zdmj', label: '实际占地面积(平方米)', interKey: 'fwZdmj' },
+  { key: 'fw_jzmj', label: '实际建筑面积(平方米)', interKey: 'fwJzmj' },
+  { key: 'fw_cs', label: '实际层数', interKey: 'fwCs' },
+  { key: 'fw_jcnf', label: '建成年份/在建', interKey: 'fwJcnf' },
+  { key: 'fw_syqk', label: '房屋使用情况', interKey: 'fwSyqk' },
+  { key: 'fw_zyyt', label: '房屋主要用途', interKey: 'fwZyyt' },
 ])
 const mapLayers = ref([
 
@@ -131,7 +174,7 @@ onMounted(() => {
   getHomeTableData()
 })
 const panelShow = ref({
-  currentLayer:true
+  currentLayer: true
 })
 const toolsArr = ref([
   { id: 'layer', picUrl: getAssetsFile('0531/tool-layer.png') },
@@ -141,28 +184,23 @@ const toolsArr = ref([
 const allTownArr = ref([])
 const tableData = ref([])
 const formInline = reactive({
-  questionName: '',
-  town:'',
-  remark:'',
-  year:'',
-  questionType:'',
-  tjsj:'',
-
+  xianzhuang: '',
+  xz: '',
+  zcmc: '',
 })
 onMounted(() => {
-
   createMap()
 })
 function createMap() {
   nextTick(() => {
-    console.log(CityGis,'saas')
+    console.log(CityGis, 'saas')
     myBridge.bridgeContent = bridge = new CityGis.Bridge({
       id: "i_map",
-      url: import.meta.env.VITE_APP_BASE_ADDR+"/map_widget/#/mapcmnw?theme=dark&view=2D&basemap=air",
+      url: import.meta.env.VITE_APP_BASE_ADDR + "/map_widget/#/mapcmnw?theme=dark&view=2D&basemap=air",
       onReady: function () {
       },
     });
-     listen = (arg) => {
+    listen = (arg) => {
       console.log(arg)
       switch (arg.action) {
         case "ViewComplete":
@@ -172,10 +210,10 @@ function createMap() {
           // layerQueryGet(getLayerByName('意向招商地块').url,'1=1',false,false,false)
           addPointSearch()
           break
-          // case 'MapClickResult':
-          //   getZsModuleDetailData(route.params.id).then(res => {
-          //
-          //   })
+        // case 'MapClickResult':
+        //   getZsModuleDetailData(route.params.id).then(res => {
+        //
+        //   })
       }
     }
     bridge.addEventListener(listen)
@@ -184,21 +222,24 @@ function createMap() {
 </script>
 
 <style scoped lang="scss">
-.detail-info-g{
+.detail-info-g {
   height: 200px;
   position: absolute;
   left: 20px;
   top: 20px;
 }
-#visual-assets-home{
-  header{
+
+#visual-assets-home {
+  header {
     margin-bottom: 0;
   }
+
   height: 100%;
   overflow: hidden;
 
 }
-.bottom-area{
+
+.bottom-area {
   position: absolute;
   z-index: 1;
   bottom: 10px;
@@ -208,6 +249,7 @@ function createMap() {
   right: 10px;
   box-shadow: 0px 4px 30px 0px rgba(0, 42, 64, 0.5);
 }
+
 #i_map {
   width: 100%;
   height: 100%;

+ 107 - 36
src/views/zjjgfx/visual-assets/VisualAssetsAdd.vue

@@ -3,9 +3,9 @@
 
     <header>
       <div class="button-op">
-        <el-button type="primary" class="btn-default">提交</el-button>
-        <el-button type="primary" class="btn-default">保存</el-button>
-        <el-button  class="btn-default" @click="$emit('changeOperation','')">取消</el-button>
+        <el-button type="primary" class="btn-default" @click="handleSubmit">提交</el-button>
+        <!-- <el-button type="primary" class="btn-default" @click="handleSubmit('save')">保存</el-button> -->
+        <el-button class="btn-default" @click="$emit('changeOperation', '')">取消</el-button>
       </div>
       <div class="header-row">
         <h1>新增问题</h1>
@@ -16,7 +16,7 @@
       <div class="detail-main">
         <div class="detail-sub-title">基本信息</div>
         <el-form :model="form" :rules="formRules" label-position="top" ref="basicInfo" class="form-detail"
-                 hide-required-asterisk='true'>
+          hide-required-asterisk='true'>
           <el-form-item label="资产编号" prop="zcbh">
             <el-input v-model="form.zcbh" placeholder="请输入资产编号" clearable></el-input>
           </el-form-item>
@@ -24,9 +24,8 @@
             <el-input v-model="form.zcmc" placeholder="请输入资产名称" clearable></el-input>
           </el-form-item>
           <el-form-item label="乡镇" prop="townId">
-            <el-select v-model="form.townId"  @change="changeTown">
+            <el-select v-model="form.townId" @change="changeTown" placeholder="请输入资产名称">
               <el-option v-for="item in allTown" :key="item.code" :value="item.code" :label="item.name">
-
               </el-option>
             </el-select>
           </el-form-item>
@@ -38,8 +37,8 @@
             </el-select>
           </el-form-item>
           <el-form-item prop="dswsyf" label="土地所有方">
-            <el-select  v-model="form.dswsyf">
-              <el-option >
+            <el-select v-model="form.dswsyf">
+              <el-option>
 
               </el-option>
             </el-select>
@@ -57,18 +56,18 @@
             <el-input v-model="form.dswmj" placeholder="地上物所有方" clearable></el-input>
           </el-form-item>
           <el-form-item label="承租单位" prop="czdw">
-            <el-select  v-model="form.czdw">
+            <el-select v-model="form.czdw">
 
             </el-select>
           </el-form-item>
           <el-form-item label="有无权证" prop="ywqz">
-            <el-select  v-model="form.ywqz">
+            <el-select v-model="form.ywqz">
 
             </el-select>
           </el-form-item>
           <el-form-item label="空间位置">
-            <el-input v-model="form.username" placeholder="空间位置" clearable>
-              <template  #append>
+            <el-input v-model="form.geojson" placeholder="空间位置" clearable>
+              <template #append>
                 <el-button type="primary" class="btn-default">请绘制资产位置</el-button>
               </template>
             </el-input>
@@ -77,8 +76,8 @@
             <el-input v-model="form.username" placeholder="地块绘制面积(亩)" clearable></el-input>
           </el-form-item>
           <el-form-item label="现状" prop="xianzhuang">
-            <el-select  v-model="form.xianzhuang">
-
+            <el-select v-model="form.xianzhuang">
+              <el-option v-for="item in actualList" :label="item.name" :key="item.code" :value="item.code"></el-option>
             </el-select>
           </el-form-item>
         </el-form>
@@ -88,19 +87,90 @@
 </template>
 
 <script setup>
-import {ref,watch} from "vue";
-import {UseGetAllTownAndVillage} from "@/data/useFunction";
+import { ref, watch, reactive } from "vue";
+import { UseGetAllTownAndVillage } from "@/data/useFunction";
+import { showMessage } from "@/utils/tip";
+
+import {
+  GetAssetList,
+  delAssetData,
+  getAssetExport,
+  editAssetInfo,
+  addAssetInfo
+} from "@/api/szjg/supervise-szksh";
 const form = ref({
-
 })
-const formRules = {
-
-}
-function changeTown(){
+const emit = defineEmits()
+const actualList = ref([
+  {
+    name: '出租',
+    code: '出租',
+    value: '出租'
+  },
+  {
+    name: '闲置',
+    code: '闲置',
+    value: '闲置'
+  },
+  {
+    name: '部分出租',
+    code: '部分出租',
+    value: '部分出租'
+  },
+  {
+    name: '自用',
+    code: '自用',
+    value: '自用'
+  }
+])
+const formRules = reactive({
+  zcbh: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  zcmc: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  xz: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  villageId: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  dswsyf: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  jsydmj: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  fjsydmj: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  dswsyf: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  dswmj: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  czdw: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  ywqz: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  geojson: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  username: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  xianzhuang: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  // shyj: { required: true, message: '请输入审核意见', trigger: 'blur' },
+  // mc: { required: true, message: '请输入地块名称', trigger: 'blur' },
+  // ghyt: { required: true, message: '请输入流转用途', trigger: 'blur' },
+  // htmj: { required: true, message: '请绘制地块', trigger: 'blur' },
+  // tbmj: { required: true, message: '请输入流转面积', trigger: 'blur' },
+  // ssjz: { required: true, message: '请选择所属乡镇', trigger: 'change' },
+  // ssc: { required: true, message: '请选择所属村', trigger: 'change' },
+  // yzzpz: { required: true, message: '请选择原种植品种', trigger: 'change' },
+  // tdxz: { required: true, message: '请选择土地性质', trigger: 'change' },
+  // ybntmj: { required: true, message: '请输入一般农田面积', trigger: 'blur' },
+  // jbntmj: { required: true, message: '请输入基本农田面积', trigger: 'blur' },
+  // tdlyfl: { required: true, message: '请选择土地利用分类', trigger: 'change' },
+  // yxlzjg: { required: true, message: '请输入意向流转价格', trigger: 'blur' },
+  // yxlzqx: { required: true, message: '请输入意向流转年限', trigger: 'blur' },
+  // dkzlwz: { required: true, message: '请输入地块坐落位置', trigger: 'blur' },
+})
+function changeTown() {
   form.value.villageId = ''
 }
 const villageArr = ref([])
-const {allTown,getVillage} = UseGetAllTownAndVillage()
+const { allTown, getVillage } = UseGetAllTownAndVillage()
+function handleSubmit() {
+  form.value.xz = allTown.value.find(i => i.code === form.value.townId).name
+
+  addAssetInfo(form.value).then((res) => {
+    console.log(res)
+    showMessage({
+      type: 'success',
+      message: '新增成功'
+    })
+    emit('changeOperation', '')
+  })
+}
 function applyA() {
   const formData = {
     "czdw": form.value.czdw,
@@ -122,49 +192,50 @@ function applyA() {
 
   }
 }
-watch(() => form.value.townId,val => {
+watch(() => form.value.townId, val => {
   if (!val) villageArr.value = []
- getVillage(form.value.townId).then(res => {
-   console.log('村',res)
-   villageArr.value = res
- })
+  getVillage(form.value.townId).then(res => {
+    console.log('村', res)
+    villageArr.value = res
+  })
 
 })
 
-const props =defineProps({
-  operationType:{
+const props = defineProps({
+  operationType: {
 
   },
-  operationObj:{
+  operationObj: {
 
   }
 })
 </script>
 
 <style lang="scss" scoped>
-.button-op{
+.button-op {
   right: 30px;
   position: absolute;
   margin-top: 10px;
 }
 
-#visual-assets-detail  {
-  :deep{
+#visual-assets-detail {
+  :deep {
     .el-input-group__append {
       border: 1px solid var(--color-bg-1);
       background: var(--color-bg-1);
       width: fit-content !important;
       color: #fff;
       padding: 0 10px
-
     }
-    .el-input{
+
+    .el-input {
       height: 40px !important;
     }
   }
 
 }
-.form-detail :deep .el-form-item:not(.item-row) .el-form-item__content div{
+
+.form-detail :deep .el-form-item:not(.item-row) .el-form-item__content div {
   box-sizing: border-box;
   height: 100% !important;
 }