Pārlūkot izejas kodu

手机端

master
庞东旭 pirms 1 nedēļas
vecāks
revīzija
fa4b3c4218
12 mainītis faili ar 980 papildinājumiem un 140 dzēšanām
  1. Binārs
      src/assets/images/login-background.png
  2. +2
    -0
      src/main.js
  3. +1
    -1
      src/permission.js
  4. +24
    -6
      src/router/index.js
  5. +1
    -1
      src/utils/request.js
  6. +164
    -0
      src/utils/utils.js
  7. +263
    -0
      src/views/app/attribute_edit.vue
  8. +132
    -0
      src/views/app/detail.vue
  9. +0
    -109
      src/views/app/edit.vue
  10. +95
    -16
      src/views/app/list.vue
  11. +289
    -0
      src/views/app/operate_edit.vue
  12. +9
    -7
      src/views/login.vue

Binārs
src/assets/images/login-background.png Parādīt failu

Pirms Pēc
Platums: 1920  |  Augstums: 1080  |  Izmērs: 1.2 MiB

+ 2
- 0
src/main.js Parādīt failu

@@ -19,6 +19,7 @@ import './permission' // permission control
import { getDicts, getAllDicts } from "@/api/system/dict/data"
import { getConfigKey } from "@/api/system/config"
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"
import { format } from "@/utils/utils";
// 分页组件
import Pagination from "@/components/Pagination"
// 自定义表格工具组件
@@ -50,6 +51,7 @@ Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.format = format

// 全局组件挂载
Vue.component('DictTag', DictTag)


+ 1
- 1
src/permission.js Parādīt failu

@@ -9,7 +9,7 @@ import { isRelogin } from '@/utils/request'

NProgress.configure({ showSpinner: false })

const whiteList = ['/login', '/register', '/app/login', '/app/list', '/app/edit', '/app/map']
const whiteList = ['/login', '/register', '/app/login', '/app/list', '/app/attribute_edit', '/app/operate_edit', '/app/map', '/app/detail']

const isWhiteList = (path) => {
return whiteList.some(pattern => isPathMatch(pattern, path))


+ 24
- 6
src/router/index.js Parādīt failu

@@ -115,7 +115,7 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/app/user'], resolve)
},
{ //用户页
{ //列表
path: '/app/list',
name: 'appList',
hidden: true,
@@ -124,16 +124,25 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/app/list'], resolve)
},
{ //用户页
path: '/app/edit',
name: 'appEdit',
{ //属性修改
path: '/app/attribute_edit',
name: 'appAttributeEdit',
hidden: true,
meta: {
title: '修改',
},
component: (resolve) => require(['@/views/app/edit'], resolve)
component: (resolve) => require(['@/views/app/attribute_edit'], resolve)
},
{ //用户页
{ //经营修改
path: '/app/operate_edit',
name: 'appOperateEdit',
hidden: true,
meta: {
title: '修改',
},
component: (resolve) => require(['@/views/app/operate_edit'], resolve)
},
{ //地图
path: '/app/map',
name: 'appMap',
hidden: true,
@@ -142,6 +151,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/app/map'], resolve)
},
{ //详情
path: '/app/detail',
name: 'appDetail',
hidden: true,
meta: {
title: '详情',
},
component: (resolve) => require(['@/views/app/detail'], resolve)
},
]

// 动态路由,基于用户权限动态去加载


+ 1
- 1
src/utils/request.js Parādīt failu

@@ -81,7 +81,7 @@ service.interceptors.response.use(res => {
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res.data
}
console.log(location)
//console.log(location)
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true


+ 164
- 0
src/utils/utils.js Parādīt failu

@@ -0,0 +1,164 @@

export function selectDictLabel(datas, value) {
var actions = [];
Object.keys(datas).some((key) => {
if (datas[key].dictValue == ('' + value)) {
actions.push(datas[key].dictLabel);
return true;
}
})
return actions.join('');
}

export function selectDictScheme(datas, value) {
var actions = [];
Object.keys(datas).some((key) => {
if (datas[key].id == ('' + value)) {
actions.push(datas[key].schemeName);
return true;
}
})
return actions.join('');
}

//回退
export function onClickLeft(){
history.back(-1);
}

export function getNowFormatDate(time) {
var date;
if (!time){
date = new Date();
}else{
date = time;
}
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
if (hours >= 0 && hours <= 9) {
hours = "0" + hours;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + day + " " + hours + seperator2 + minutes + seperator2 + seconds;

return currentdate;
}

export function format(time, format) {
var t = new Date(time);
var tf = function (i) { return (i < 10 ? '0' : '') + i };
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
switch (a) {
case 'yyyy':
return tf(t.getFullYear());
break;
case 'MM':
return tf(t.getMonth() + 1);
break;
case 'mm':
return tf(t.getMinutes());
break;
case 'dd':
return tf(t.getDate());
break;
case 'HH':
return tf(t.getHours());
break;
case 'ss':
return tf(t.getSeconds());
break;
}
})
}

/**
* @author Rui.Zhang
* @description 判断是否为银行卡号
* @param {String} str_cardNo 待校验的数据
* @returns {Boolean}, true:是银行卡号
**/
export function isBankCard (str_cardNo) {
str_cardNo = str_cardNo || String(this);
if ("" == str_cardNo.trim() || undefined == str_cardNo) {
return false;
}
var lastNum = str_cardNo.substr(str_cardNo.length - 1, 1);//取出最后一位(与luhm进行比较)

var first15Num = str_cardNo.substr(0, str_cardNo.length - 1);//前15或18位
var newArr=new Array();
for(var i=first15Num.length-1;i>-1;i--){ //前15或18位倒序存进数组
newArr.push(first15Num.substr(i,1));
}
var arrJiShu=new Array(); //奇数位*2的积 <9
var arrJiShu2=new Array(); //奇数位*2的积 >9

var arrOuShu=new Array(); //偶数位数组
for(var j=0;j<newArr.length;j++){
if((j+1)%2==1){//奇数位
if(parseInt(newArr[j])*2<9)
arrJiShu.push(parseInt(newArr[j])*2);
else
arrJiShu2.push(parseInt(newArr[j])*2);
}
else //偶数位
arrOuShu.push(newArr[j]);
}

var jishu_child1=new Array();//奇数位*2 >9 的分割之后的数组个位数
var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数
for(var h=0;h<arrJiShu2.length;h++){
jishu_child1.push(parseInt(arrJiShu2[h])%10);
jishu_child2.push(parseInt(arrJiShu2[h])/10);
}

var sumJiShu=0; //奇数位*2 < 9 的数组之和
var sumOuShu=0; //偶数位数组之和
var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和
var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和
var sumTotal=0;
for(var m=0;m<arrJiShu.length;m++){
sumJiShu=sumJiShu+parseInt(arrJiShu[m]);
}

for(var n=0;n<arrOuShu.length;n++){
sumOuShu=sumOuShu+parseInt(arrOuShu[n]);
}

for(var p=0;p<jishu_child1.length;p++){
sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]);
sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]);
}
//计算总和
sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2);

//计算Luhm值
var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10;
var luhm= 10-k;

if(lastNum==luhm){
return true;
}
else{
return false;
}
}

export function is_not_number(val) {
return (val === null || val === undefined || val === '');
}

+ 263
- 0
src/views/app/attribute_edit.vue Parādīt failu

@@ -0,0 +1,263 @@
<template>
<div class="home_wrapper">
<van-nav-bar
title="地块信息维护"
left-arrow
placeholder
safe-area-inset-top
@click-left="onClickLeft"
/>

<van-form @submit="onSubmit">
<div class="main">
<p class="title"><i></i>地块信息</p>
<van-field v-model="form.deptName" label="区域位置" placeholder="请输入" input-align="right" label-width="auto" />
<!-- <van-field v-model="form.bsm" label="标识码" placeholder="请输入" input-align="right" label-width="auto" />-->
<!-- <van-field v-model="form.ysdm" label="要素代码" placeholder="请输入" input-align="right" label-width="auto" />-->
<van-field v-model="form.dkbm" label="地块编码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkmc" label="地块名称" placeholder="请输入" input-align="right" label-width="auto" required :rules="[{ required: true }]" />
<van-field readonly @click="showOwnershipPicker = true" v-model="form.syqxzText" label="所有权性质" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showOwnershipPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.ownership_type"
value-key="label"
@cancel="showOwnershipPicker = false"
@confirm="onConfirmSyqxz"
/>
</van-popup>
<van-field readonly @click="showDklbPicker = true" v-model="form.dklbText" label="地块类别" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showDklbPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.land_type"
value-key="label"
@cancel="showDklbPicker = false"
@confirm="onConfirmDklb"
/>
</van-popup>
<van-field readonly @click="showTdlylxPicker = true" v-model="form.tdlylxText" label="土地利用类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showTdlylxPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.land_use"
value-key="label"
@cancel="showTdlylxPicker = false"
@confirm="onConfirmTdlylx"
/>
</van-popup>
<van-field readonly @click="showDldjPicker = true" v-model="form.dldjText" label="地力等级" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showDldjPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.land_grade_type"
value-key="label"
@cancel="showDldjPicker = false"
@confirm="onConfirmDldj"
/>
</van-popup>
<van-field readonly @click="showTdytPicker = true" v-model="form.tdytText" label="土地用途" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showTdytPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.land_use_type"
value-key="label"
@cancel="showTdytPicker = false"
@confirm="onConfirmTdyt"
/>
</van-popup>
<van-field readonly @click="showSfjbntPicker = true" v-model="form.sfjbntText" label="是否基本农田" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showSfjbntPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.is_common"
value-key="label"
@cancel="showSfjbntPicker = false"
@confirm="onConfirmSfjbnt"
/>
</van-popup>
<van-field v-model="form.dkdz" label="地块东至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkxz" label="地块西至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dknz" label="地块南至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkbz" label="地块北至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkbzxx" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.zjrxm" label="指界人姓名" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.txmj" label="图显面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.scmjm" label="实测面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly @click="showSfzwdPicker = true" v-model="form.sfzwdText" label="是否账外地" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showSfzwdPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.is_common"
value-key="label"
@cancel="showSfzwdPicker = false"
@confirm="onConfirmSfzwd"
/>
</van-popup>
<van-field readonly @click="showSurveyStatusPicker = true" v-model="form.surveyStatusText" label="调查状态" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showSurveyStatusPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.survey_status"
value-key="label"
@cancel="showSurveyStatusPicker = false"
@confirm="onConfirmSurveyStatus"
/>
</van-popup>
</div>

<van-button round block type="primary" native-type="submit" class="subClass">提交</van-button>
</van-form>

</div>
</template>

<script>
// import { getMenuApp } from "@/api/app/index";
import Cookies from "js-cookie";
import { getLand, updateLand } from "@/api/resource/land"
export default {
dicts: ['ownership_type', 'land_use_type', 'survey_status', 'is_common', 'land_grade_type', 'land_type', 'land_use'],
name: "appEdit",
data() {
return {
showOwnershipPicker: false,
showDklbPicker: false,
showTdlylxPicker: false,
showDldjPicker: false,
showTdytPicker: false,
showSfjbntPicker: false,
showSfzwdPicker: false,
showSurveyStatusPicker: false,
value:'',
form:{}
};
},
created() {
this.getDetail()
},
methods: {
onClickLeft(){
history.back(-1);
},
getDetail(){
getLand(this.$route.query.fid).then(response => {

response.data.syqxzText = this.selectDictLabel(this.dict.type.ownership_type,response.data.syqxz);
response.data.dklbText = this.selectDictLabel(this.dict.type.land_type,response.data.dklb);
response.data.tdlylxText = this.selectDictLabel(this.dict.type.land_use,response.data.tdlylx);
response.data.dldjText = this.selectDictLabel(this.dict.type.land_grade_type,response.data.dldj);
response.data.tdytText = this.selectDictLabel(this.dict.type.land_use_type,response.data.tdyt);
response.data.sfjbntText = this.selectDictLabel(this.dict.type.is_common,response.data.sfjbnt);
response.data.sfzwdText = this.selectDictLabel(this.dict.type.is_common,response.data.sfzwd);
response.data.surveyStatusText = this.selectDictLabel(this.dict.type.survey_status,response.data.surveyStatus);
this.form = response.data;
});
},
onConfirmSyqxz(value) {
this.form.syqxzText = value.label;
this.form.syqxz = value.value;
this.showOwnershipPicker = false;
},
onConfirmDklb(value) {
this.form.dklbText = value.label;
this.form.dklb = value.value;
this.showDklbPicker = false;
},
onConfirmTdlylx(value) {
this.form.tdlylxText = value.label;
this.form.tdlylx = value.value;
this.showTdlylxPicker = false;
},
onConfirmDldj(value) {
this.form.dldjText = value.label;
this.form.dldj = value.value;
this.showDldjPicker = false;
},
onConfirmTdyt(value) {
this.form.tdytText = value.label;
this.form.tdyt = value.value;
this.showTdytPicker = false;
},
onConfirmSfjbnt(value) {
this.form.sfjbntText = value.label;
this.form.sfjbnt = value.value;
this.showSfjbntPicker = false;
},
onConfirmSfzwd(value) {
this.form.sfzwdText = value.label;
this.form.sfzwd = value.value;
this.showSfzwdPicker = false;
},
onConfirmSurveyStatus(value) {
this.form.surveyStatusText = value.label;
this.form.surveyStatus = value.value;
this.showSurveyStatusPicker = false;
},
/** 提交按钮 */
onSubmit() {
updateLand(this.form).then(response => {
if (response.code == 200){
this.$modal.msgSuccess("修改成功")
setTimeout(function(){
history.back(-1);
},2000)
}
})
},
},
};
</script>

<style scoped lang="scss">
p{margin: 0;}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F6F9FB;
padding-bottom: 5vh;
}
.van-nav-bar{
background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
::v-deep.van-icon{
color: #000000;
}
}
.main{
width: 94%;
margin: 3vw auto;
padding: 3vw;
background-color: #ffffff;
border-radius: 10px;
overflow: hidden;

}
.title{
display: flex;
align-items: center;
font-size: 20px;
font-weight: bold;
margin-bottom: 10px;
i{
width: 5px;
height: 20px;
display: block;
background-color: #29D2AF;
margin-right: 10px;
}
}
.subClass{
background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
border-radius: 50px 50px 50px 50px;
border: none;
width: 90%;
margin: 3vw auto;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 18px;
}

</style>

+ 132
- 0
src/views/app/detail.vue Parādīt failu

@@ -0,0 +1,132 @@
<template>
<div class="home_wrapper">
<van-nav-bar
title="地块详情"
left-arrow
placeholder
safe-area-inset-top
@click-left="onClickLeft"
/>

<div class="main">
<p class="title"><i></i>地块信息</p>
<van-field readonly v-model="form.deptName" label="区域位置名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.bsm" label="标识码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.ysdm" label="要素代码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkbm" label="地块代码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkmc" label="地块名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.syqxz" label="所有权性质" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dklb" label="地块类别" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.tdlylx" label="土地利用类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dldj" label="地力等级" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.tdyt" label="土地用途" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.sfjbnt" label="是否基本农田" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkdz" label="地块东至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkxz" label="地块西至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dknz" label="地块南至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkbz" label="地块北至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.dkbzxx" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.zjrxm" label="指界人姓名" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.txmj" label="图显面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.scmjm" label="实测面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.sfzwd" label="是否账外地" placeholder="请输入" input-align="right" label-width="auto" />
</div>

<div class="main">
<p class="title"><i></i>经营信息</p>
<van-field readonly v-model="form.jymj" label="经营面积(亩)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.jyfs" label="经营方式" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.jydxmc" label="经营对象名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.jykssj" label="经营开始时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.jyjssj" label="经营结束时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.cbje" label="承包金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.surveyStatus" label="调查状态" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.bz" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly v-model="form.jymj" label="实物图" placeholder="请输入" input-align="right" label-width="auto" />
<div v-if="!!form.dkImg">
<el-tooltip effect="light" :content="item" placement="bottom" v-for="(item, index) in form.dkImg.split(',')" :key="index">
<el-image style="height: 64px; width: 64px; margin: 2px; display: inline-block;" fit="scale-down" :src="this.baseRoutingUrll + item" :preview-src-list="form.dkImg.split(',').map((x) => this.baseRoutingUrll + x)"/>
</el-tooltip>
</div>
</div>
</div>
</template>

<script>
// import { getMenuApp } from "@/api/app/index";
import { getLandDetailByDkbm } from "@/api/resource/land"
import Cookies from "js-cookie";
export default {
name: "appEdit",
data() {
return {
value:'',
form:{}
};
},
created() {
this.getDetail()
},
methods: {
onClickLeft(){
history.back(-1);
},
getDetail(){
getLandDetailByDkbm(this.$route.query.dkbm).then(response => {
this.form = response.data;
});
}
},
};
</script>

<style scoped lang="scss">
p{margin: 0;}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F6F9FB;
}
.van-nav-bar{
background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
::v-deep.van-icon{
color: #000000;
}
}
.main{
width: 94%;
margin: 3vw auto;
padding: 3vw;
background-color: #ffffff;
border-radius: 10px;
overflow: hidden;

}
.title{
display: flex;
align-items: center;
font-size: 20px;
font-weight: bold;
margin-bottom: 10px;
i{
width: 5px;
height: 20px;
display: block;
background-color: #29D2AF;
margin-right: 10px;
}
}
.subClass{
background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
border-radius: 50px 50px 50px 50px;
width: 90%;
margin: 3vw auto;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 18px;
}

</style>

+ 0
- 109
src/views/app/edit.vue Parādīt failu

@@ -1,109 +0,0 @@
<template>
<div class="home_wrapper">
<van-nav-bar
title="地块信息维护"
left-arrow
placeholder
safe-area-inset-top
@click-left="onClickLeft"
/>

<div class="main">
<p class="title"><i></i>经营信息</p>
<van-field v-model="value" label="经营面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营方式" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营对象类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营对象名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营对象证件类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营对象证件号码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="是否签订合同" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营开始时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="经营结束时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="承包金额" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="兑现金额" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="尚欠金额" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="年收益" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="value" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />
</div>

<p class="subClass">提交</p>

</div>
</template>

<script>
// import { getMenuApp } from "@/api/app/index";
import Cookies from "js-cookie";
export default {
name: "appEdit",
data() {
return {
loading: false,
finished: false,
value:''
};
},
created() {

},
methods: {
onClickLeft(){
history.back(-1);
},
getList(){

}
},
};
</script>

<style scoped lang="scss">
p{margin: 0;}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F6F9FB;
}
.van-nav-bar{
background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
::v-deep.van-icon{
color: #000000;
}
}
.main{
width: 94%;
margin: 3vw auto;
padding: 3vw;
background-color: #ffffff;
border-radius: 10px;
overflow: hidden;

}
.title{
display: flex;
align-items: center;
font-size: 20px;
font-weight: bold;
margin-bottom: 10px;
i{
width: 5px;
height: 20px;
display: block;
background-color: #29D2AF;
margin-right: 10px;
}
}
.subClass{
background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
border-radius: 50px 50px 50px 50px;
width: 90%;
margin: 3vw auto;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 18px;
}

</style>

+ 95
- 16
src/views/app/list.vue Parādīt failu

@@ -10,12 +10,22 @@

<div class="search_box">
<div class="left">
<p>已清查<van-icon name="play" /></p>
<van-field v-model="value" left-icon="search" placeholder="请输入用户名" />
<p @click="showPicker = true">{{surveyStatus}}<van-icon name="play" /></p>
<van-field v-model="value" @input="searchChange" @clear="searchClear" clearable left-icon="search" placeholder="请输入地块名称" />
</div>
<van-button type="primary" round >搜索</van-button>
<van-button type="primary" round @click="goSearch" >搜索</van-button>
</div>

<van-popup v-model="showPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.survey_status"
value-key="label"
@cancel="showPicker = false"
@confirm="onConfirm"
/>
</van-popup>

<div class="list_main">
<van-list
v-model="loading"
@@ -24,21 +34,21 @@
@load="getList"
>
<!--1-->
<van-swipe-cell right-width="200" class="item" v-for="(item,index) in 10" :key="index">
<div class="item_box" @click="$router.push({name:'appEdit',query:{id:item.id}})">
<van-swipe-cell right-width="200" class="item" v-for="(item,index) in landList" :key="index">
<div class="item_box" @click="$router.push({name:'appDetail',query:{dkbm:item.dkbm}})">
<div class="head_block">
<div class="title">334656556565</div>
<div class="describe">已清查</div>
<div class="title">{{item.dkbm}}</div>
<div class="describe"><dict-tag :options="dict.type.survey_status" :value="item.surveyStatus"/></div>
</div>
<div class="order_block">
<div class="order">名称名称名称名称名称名</div>
<div class="describe">67.08</div>
<div class="order">{{item.dkmc}}</div>
<div class="describe">{{item.scmjm}}</div>
</div>
</div>
<template #right>
<div style="background-color: #29D2AF;height: 100%">属性<br/>修改</div>
<div style="background-color: #0E82EB;height: 100%">经营<br/>修改</div>
<div style="background-color: #ee0a24;height: 100%">删除</div>
<div style="background-color: #29D2AF;height: 100%" @click="$router.push({name:'appAttributeEdit',query:{fid:item.fid}})">属性<br/>修改</div>
<div style="background-color: #0E82EB;height: 100%" @click="$router.push({name:'appOperateEdit',query:{dkbm:item.dkbm}})">经营<br/>修改</div>
<div style="background-color: #ee0a24;height: 100%" @click="handleDelete(item)">删除</div>
</template>
</van-swipe-cell>

@@ -50,25 +60,91 @@

<script>
// import { getMenuApp } from "@/api/app/index";
import Cookies from "js-cookie";
import { listLand, delLand } from "@/api/resource/land"
export default {
dicts: ['ownership_type', 'land_use_type', 'survey_status', 'is_common', 'land_grade_type', 'land_type', 'land_use'],
name: "appList",
data() {
return {
loading: false,
finished: false,
value:''
showPicker: false,
value:'',
queryParams: {
pageNum: 1,
pageSize: 10,
// 查询排序
//orderByColumn: "id",
//isAsc: "desc",
// 翻译字典
//toTranslateDict: "1",
dkbm: null,
dkmc: null,
syqxz: null,
dklb: null,
tdlylx: null,
dldj: null,
tdyt: null,
sfjbnt: null,
surveyStatus: null,
importCode: null,
sfzwd: null,
},
landList:[],
surveyStatus:'调查状态'
};
},
created() {

console.log(this.dict.type.survey_status)
},
methods: {
onClickLeft(){
history.back(-1);
},
getList(){

listLand(this.queryParams).then(response => {
this.total = response.total
for (var i = 0; i < response.rows.length; i++) {
this.landList.push(response.rows[i]);
}
if(this.landList.length >= response.total){
this.finished = true;
return;
}else{
this.loading = false;
this.queryParams.pageNum += 1 ;
}
})
},
onConfirm(value) {
console.log(value)
this.surveyStatus = value.label;
this.queryParams.surveyStatus = value.value;
this.showPicker = false;
},
searchChange(value) {
this.queryParams.dkmc = value;
},
goSearch(){
this.queryParams.pageNum = 1;
this.landList = [];
this.finished = false;
this.loading = false;
this.getList();
},
searchClear(){
this.surveyStatus = '调查状态';
this.queryParams.surveyStatus = '';
},
/** 删除按钮操作 */
handleDelete(row) {
const fids = row.fid || this.ids
this.$modal.confirm('是否确认删除地块属性编号为"' + fids + '"的数据项?').then(function() {
return delLand(fids)
}).then(() => {
this.goSearch()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
}
},
};
@@ -76,6 +152,9 @@

<style scoped lang="scss">
p{margin: 0;}
::v-deep .el-tag{
padding: 0;
}
.home_wrapper{
width: 100vw;
min-height: 100vh;


+ 289
- 0
src/views/app/operate_edit.vue Parādīt failu

@@ -0,0 +1,289 @@
<template>
<div class="home_wrapper">
<van-nav-bar
title="经营信息维护"
left-arrow
placeholder
safe-area-inset-top
@click-left="onClickLeft"
/>

<van-form @submit="onSubmit">
<div class="main">
<p class="title"><i></i>经营信息</p>
<van-field v-model="form.deptName" label="区域位置名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field required :rules="[{ required: true }]" v-model="form.dkbm" label="地块编码" placeholder="请输入" input-align="right" label-width="auto" />
<van-field :rules="[{ required: true }]" v-model="form.dkmc" label="地块名称" placeholder="请输入" input-align="right" label-width="auto" required />
<van-field v-model="form.dkdz" label="地块东至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkxz" label="地块西至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dknz" label="地块南至" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dkbz" label="地块北至" placeholder="请输入" input-align="right" label-width="auto" />

<van-field required :rules="[{ required: true }]" v-model="form.jymj" label="经营面积" placeholder="请输入" input-align="right" label-width="auto" />
<van-field required :rules="[{ required: true }]" readonly @click="showJyfsPicker = true" v-model="form.jyfsText" label="经营方式" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showJyfsPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.jyfs"
value-key="label"
@cancel="showJyfsPicker = false"
@confirm="onConfirmJyfs"
/>
</van-popup>

<van-field readonly @click="showJydxlxPicker = true" v-model="form.jydxlxText" label="经营对象类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showJydxlxPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.jydxlx"
value-key="label"
@cancel="showJydxlxPicker = false"
@confirm="onConfirmJydxlx"
/>
</van-popup>

<van-field required :rules="[{ required: true }]" v-model="form.jydxmc" label="经营对象名称" placeholder="请输入" input-align="right" label-width="auto" />
<van-field readonly @click="showJydxzjlxPicker = true" v-model="form.jydxzjlxText" label="经营对象证件类型" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showJydxzjlxPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.zjlx"
value-key="label"
@cancel="showJydxzjlxPicker = false"
@confirm="onConfirmJydxzjlx"
/>
</van-popup>

<van-field v-model="form.jydxzjhm" label="经营对象证件号码" placeholder="请输入" input-align="right" label-width="auto" />

<van-field readonly @click="showSfqdhtPicker = true" v-model="form.sfqdhtText" label="是否签订合同" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showSfqdhtPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.is_common"
value-key="label"
@cancel="showSfqdhtPicker = false"
@confirm="onConfirmSfqdht"
/>
</van-popup>

<van-field required :rules="[{ required: true }]" readonly @click="showJykssjPicker = true" v-model="form.jykssj" label="经营开始时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showJykssjPicker" round position="bottom">
<van-datetime-picker
v-model="jykssj"
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@cancel="showJykssjPicker = false"
@confirm="onConfirmJykssj"
/>
</van-popup>

<van-field required :rules="[{ required: true }]" readonly @click="showJyjssjPicker = true" v-model="form.jyjssj" label="经营结束时间" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showJyjssjPicker" round position="bottom">
<van-datetime-picker
v-model="jyjssj"
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@cancel="showJyjssjPicker = false"
@confirm="onConfirmJyjssj"
/>
</van-popup>

<van-field required :rules="[{ required: true }]" v-model="form.cbje" label="承包金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.dxje" label="兑现金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.sqje" label="尚欠金额(元)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.nsy" label="年收益(元)" placeholder="请输入" input-align="right" label-width="auto" />
<van-field v-model="form.bzxx" label="备注信息" placeholder="请输入" input-align="right" label-width="auto" />

<van-field readonly label="实物图" placeholder="" input-align="right" label-width="auto" />

<image-upload v-model="form.dkImg"/>

<van-field readonly @click="showSurveyStatusPicker = true" v-model="form.surveyStatusText" label="调查状态" placeholder="请输入" input-align="right" label-width="auto" />
<van-popup v-model="showSurveyStatusPicker" round position="bottom">
<van-picker
show-toolbar
:columns="dict.type.survey_status"
value-key="label"
@cancel="showSurveyStatusPicker = false"
@confirm="onConfirmSurveyStatus"
/>
</van-popup>
</div>

<van-button round block type="primary" native-type="submit" class="subClass">提交</van-button>
</van-form>

</div>
</template>

<script>
// import { getMenuApp } from "@/api/app/index";
import Cookies from "js-cookie";
import { getLandDetailByDkbm } from "@/api/resource/land"
import { getOperation, updateOperation, addOperation } from "@/api/resource/operation"
import {getInfoByImportCode} from "@/api/system/dept";
export default {
dicts: ['zjlx', 'survey_status', 'is_common', 'jydxlx', 'jyfs'],
name: "appEdit",
data() {
return {
showJyfsPicker: false,
showSfqdhtPicker: false,
showJydxlxPicker: false,
showJydxzjlxPicker: false,
showJykssjPicker: false,
showJyjssjPicker: false,
showSurveyStatusPicker: false,
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
form: {},
jykssj:new Date(),
jyjssj:new Date(),
openPic: [],
openPic2: [],
};
},
created() {
this.getDetail()
},
methods: {
onClickLeft(){
history.back(-1);
},
getDetail(){
getLandDetailByDkbm(this.$route.query.dkbm).then(response => {
if (!response.data.id){
this.form = response.data
}else{
getOperation(response.data.id).then(response => {
response.data.jyfsText = this.selectDictLabel(this.dict.type.jyfs,response.data.jyfs);
response.data.jydxlxText = this.selectDictLabel(this.dict.type.jydxlx,response.data.jydxlx);
response.data.jydxzjlxText = this.selectDictLabel(this.dict.type.zjlx,response.data.jydxzjlx);
response.data.sfqdhtText = this.selectDictLabel(this.dict.type.is_common,response.data.sfqdht);
response.data.surveyStatusText = this.selectDictLabel(this.dict.type.survey_status,response.data.surveyStatus);
this.jykssj = new Date(response.data.jykssj);
this.jyjssj = new Date(response.data.jyjssj);
this.form = response.data
})
}
getInfoByImportCode(response.data.importCode).then((res) => {
this.form.deptId = res.data.deptId
});
});
},
onConfirmJydxlx(value) {
this.form.jydxlxText = value.label;
this.form.jydxlx = value.value;
this.showJydxlxPicker = false;
},
onConfirmJyfs(value) {
this.form.jyfsText = value.label;
this.form.jyfs = value.value;
this.showJyfsPicker = false;
},
onConfirmJydxzjlx(value) {
this.form.jydxzjlxText = value.label;
this.form.jydxzjlx = value.value;
this.showJydxzjlxPicker = false;
},
onConfirmSfqdht(value) {
this.form.sfqdhtText = value.label;
this.form.sfqdht = value.value;
this.showSfqdhtPicker = false;
},
onConfirmJykssj(data) {
this.form.jykssj = this.format(data, 'yyyy-MM-dd');
this.showJykssjPicker = false;
},
onConfirmJyjssj(data) {
this.form.jyjssj = this.format(data, 'yyyy-MM-dd');
this.showJyjssjPicker = false;
},
onConfirmSurveyStatus(value) {
this.form.surveyStatusText = value.label;
this.form.surveyStatus = value.value;
this.showSurveyStatusPicker = false;
},
/** 提交按钮 */
onSubmit() {
if (!this.form.id){
addOperation(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
setTimeout(function(){
history.back(-1);
},2000)
})
}else{
updateOperation(this.form).then(response => {
if (response.code == 200){
this.$modal.msgSuccess("修改成功")
setTimeout(function(){
history.back(-1);
},2000)
}
})
}

},

},
};
</script>

<style scoped lang="scss">
p{margin: 0;}
.home_wrapper{
width: 100vw;
min-height: 100vh;
background: #F6F9FB;
padding-bottom: 5vh;
}
.van-nav-bar{
background: linear-gradient( 173deg, #91E2D3 0%, #CDFCF0 100%);
::v-deep.van-icon{
color: #000000;
}
}
.main{
width: 94%;
margin: 3vw auto;
padding: 3vw;
background-color: #ffffff;
border-radius: 10px;
overflow: hidden;

}
.title{
display: flex;
align-items: center;
font-size: 20px;
font-weight: bold;
margin-bottom: 10px;
i{
width: 5px;
height: 20px;
display: block;
background-color: #29D2AF;
margin-right: 10px;
}
}
.subClass{
background: linear-gradient( 270deg, #53E4A5 0%, #24DBDB 100%);
border-radius: 50px 50px 50px 50px;
border: none;
width: 90%;
margin: 3vw auto;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
font-size: 18px;
}

</style>

+ 9
- 7
src/views/login.vue Parādīt failu

@@ -2,7 +2,7 @@
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">
{{$store.getters.loginSystemName == "" ? "PC端后台管理系统" : $store.getters.loginSystemName }}
{{$store.getters.loginSystemName == "" ? "黑龙江农村集体资源清查系统" : $store.getters.loginSystemName }}
</h3>
<el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
@@ -138,24 +138,26 @@ export default {
<style rel="stylesheet/scss" lang="scss">
.login {
display: flex;
justify-content: center;
justify-content: right;
align-items: center;
height: 100%;
background-image: url("../assets/images/login-background.jpg");
background-size: cover;
background-image: url("../assets/images/login-background.png");
background-size: 100% 100%;
}
.title {
margin: 0px auto 30px auto;
text-align: center;
color: #707070;
color: #000000;
font-size: 24px;
font-weight: bold;
}

.login-form {
border-radius: 6px;
background: #ffffff;
width: 400px;
padding: 25px 25px 5px 25px;
z-index: 1;
padding: 50px 25px 50px 25px;
z-index: 1;margin-right: 20vw;
.el-input {
height: 38px;
input {


Notiek ielāde…
Atcelt
Saglabāt