@@ -12,7 +12,7 @@ module.exports = { | |||
proxyTable: { | |||
"/api": { | |||
// 请求的目标主机 | |||
// target: 'http://218.59.175.44:8082/nsgk_test/', // 公网测试环境 | |||
//target: 'http://218.59.175.44:8082/nsgk_test/', // 公网测试环境 | |||
// target: `http://192.168.0.116:8091/nsgk_api/`, // 内网测试环境 | |||
target: 'http://localhost:8080/', | |||
//target: 'http://192.168.0.106:8080/', | |||
@@ -7,6 +7,7 @@ | |||
<!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" @click="" type="primary">画图</el-button>--> | |||
<!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/> --> | |||
<!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" type="primary">重置图层</el-button>--> | |||
<input :id="locationMap" type="button" class="ant-btn ant-btn-red" value="定位"/> | |||
<input :id="this.drawingPolygonMap" class="ant-btn ant-btn-red" type="button" value="画图"/> | |||
<input :id="this.drawingResetMap" type="button" class="ant-btn ant-btn-red" value="重置图层"/> | |||
</div> | |||
@@ -31,6 +32,7 @@ export default { | |||
uuidMap: this.guidProduct(), | |||
drawingPolygonMap: this.guidProduct(), | |||
drawingResetMap: this.guidProduct(), | |||
locationMap: this.guidProduct(), | |||
mapGeoServerUrl: "", // geoserver地址 | |||
villageBorderLayerName: "", // 乡镇边界图层名称 | |||
}; | |||
@@ -72,6 +74,56 @@ export default { | |||
return v.toString(16); | |||
}); | |||
}, | |||
getCurrentLocation(callback) { | |||
// 1. 首先尝试Android宿主端 | |||
if(window._Native_object) // Android层注入全局对象 | |||
{ | |||
console.log('使用Native获取定位'); | |||
let coord = window._Native_object.GetLocation(null); | |||
console.log('Native坐标: ' + coord); | |||
if(coord) | |||
{ | |||
let arr = coord.split(','); | |||
let res = { | |||
code: 200, | |||
data: { | |||
lng: arr[0], | |||
lat: arr[1], | |||
}, | |||
}; | |||
callback(res); | |||
return; | |||
} | |||
} | |||
// 2. 再尝试浏览器 | |||
if (navigator.geolocation) { | |||
console.log('使用浏览器获取定位'); | |||
navigator.geolocation.getCurrentPosition( | |||
(position) => { | |||
const { latitude, longitude } = position.coords; | |||
let res = { | |||
code: 200, | |||
data: { | |||
lng: longitude, | |||
lat: latitude, | |||
}, | |||
}; | |||
callback(res); | |||
}, | |||
(error) => { | |||
console.log('定位失败: ' + error.message); | |||
getQueryLand().then(callback); | |||
}, | |||
{ enableHighAccuracy: true, timeout: 10000 } | |||
); | |||
return; | |||
} | |||
// 最后使用地区坐标 | |||
console.log('使用地区坐标定位'); | |||
getQueryLand().then(callback); | |||
}, | |||
//地图查看 | |||
drawingPaceCountryLine() { | |||
//加载地图编辑 | |||
@@ -297,6 +349,26 @@ export default { | |||
that.formSubmit(); | |||
} | |||
}); | |||
$("#" + this.locationMap).click(function () { | |||
that.getCurrentLocation(res => { | |||
if (res.code == 200) { | |||
let lat = res.data.lat; | |||
let lng = res.data.lng; | |||
if(lat && lng){ | |||
Zb = [lng,lat]; | |||
}else { | |||
Zb =[115.452752, 31.789033]; | |||
} | |||
map.getView().animate({ | |||
// 只设置需要的属性即可 | |||
center: ol.proj.fromLonLat(Zb), // 中心点 | |||
zoom: 18, // 缩放级别 | |||
rotation: undefined, // 缩放完成view视图旋转弧度 | |||
duration: 1000, // 缩放持续时间,默认不需要设置 | |||
}); | |||
} | |||
}); | |||
}); | |||
} else{ | |||
//this.closeMoule = null; | |||
document.getElementById(that.uuidMap).innerHTML = ''; | |||
@@ -326,7 +398,7 @@ export default { | |||
}); | |||
//获取坐标是否存在 | |||
var Zb; | |||
getQueryLand().then((response) => { | |||
this.getCurrentLocation((response) => { | |||
if (response.code == 200) { | |||
let InsertCode = response.data; | |||
if (InsertCode != null) { | |||
@@ -442,6 +514,26 @@ export default { | |||
//that.closeMoule = null; | |||
that.formSubmit(); | |||
}); | |||
$("#" + this.locationMap).click(function () { | |||
that.getCurrentLocation(res => { | |||
if (res.code == 200) { | |||
let lat = res.data.lat; | |||
let lng = res.data.lng; | |||
if(lat && lng){ | |||
Zb = [lng,lat]; | |||
}else { | |||
Zb =[115.452752, 31.789033]; | |||
} | |||
map.getView().animate({ | |||
// 只设置需要的属性即可 | |||
center: ol.proj.fromLonLat(Zb), // 中心点 | |||
zoom: 18, // 缩放级别 | |||
rotation: undefined, // 缩放完成view视图旋转弧度 | |||
duration: 1000, // 缩放持续时间,默认不需要设置 | |||
}); | |||
} | |||
}); | |||
}); | |||
} | |||
}, | |||
}, | |||
@@ -3,6 +3,7 @@ | |||
<div id="full-screen-acceptance" style="width: 100%;height:71vh;"> | |||
<div :id=this.uuidMap style="width: 100%;height: 100%"></div> | |||
<div id='land-btn-wrap' v-show="showBtn"> | |||
<input :id="locationMap" type="button" class="ant-btn ant-btn-red" value="定位"/> | |||
<input :id="this.drawPolygonMap" class="ant-btn ant-btn-red" type="button" value="标记"/> | |||
<!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/> --> | |||
<input :id="this.drawResetMap" type="button" class="ant-btn ant-btn-red" value="重置标记"/> | |||
@@ -27,6 +28,7 @@ | |||
uuidMap: this.guidProduct(), | |||
drawPolygonMap: this.guidProduct(), | |||
drawResetMap: this.guidProduct(), | |||
locationMap: this.guidProduct(), | |||
mapGeoServerUrl: "", // geoserver地址 | |||
villageBorderLayerName: "", // 乡镇边界图层名称 | |||
}; | |||
@@ -68,6 +70,56 @@ | |||
return v.toString(16); | |||
}); | |||
}, | |||
getCurrentLocation(callback) { | |||
// 1. 首先尝试Android宿主端 | |||
if(window._Native_object) // Android层注入全局对象 | |||
{ | |||
console.log('使用Native获取定位'); | |||
let coord = window._Native_object.GetLocation(null); | |||
console.log('Native坐标: ' + coord); | |||
if(coord) | |||
{ | |||
let arr = coord.split(','); | |||
let res = { | |||
code: 200, | |||
data: { | |||
lng: arr[0], | |||
lat: arr[1], | |||
}, | |||
}; | |||
callback(res); | |||
return; | |||
} | |||
} | |||
// 2. 再尝试浏览器 | |||
if (navigator.geolocation) { | |||
console.log('使用浏览器获取定位'); | |||
navigator.geolocation.getCurrentPosition( | |||
(position) => { | |||
const { latitude, longitude } = position.coords; | |||
let res = { | |||
code: 200, | |||
data: { | |||
lng: longitude, | |||
lat: latitude, | |||
}, | |||
}; | |||
callback(res); | |||
}, | |||
(error) => { | |||
console.log('定位失败: ' + error.message); | |||
getQueryLand().then(callback); | |||
}, | |||
{ enableHighAccuracy: true, timeout: 10000 } | |||
); | |||
return; | |||
} | |||
// 最后使用地区坐标 | |||
console.log('使用地区坐标定位'); | |||
getQueryLand().then(callback); | |||
}, | |||
//地图查看 | |||
pointPaceCountryDarw() { | |||
//加载地图编辑 | |||
@@ -337,6 +389,26 @@ | |||
that.formSubmit(); | |||
} | |||
}); | |||
$("#" + this.locationMap).click(function () { | |||
that.getCurrentLocation(res => { | |||
if (res.code == 200) { | |||
let lat = res.data.lat; | |||
let lng = res.data.lng; | |||
if(lat && lng){ | |||
Zb = [lng,lat]; | |||
}else { | |||
Zb =[115.452752, 31.789033]; | |||
} | |||
map.getView().animate({ | |||
// 只设置需要的属性即可 | |||
center: ol.proj.fromLonLat(Zb), // 中心点 | |||
zoom: 18, // 缩放级别 | |||
rotation: undefined, // 缩放完成view视图旋转弧度 | |||
duration: 1000, // 缩放持续时间,默认不需要设置 | |||
}); | |||
} | |||
}); | |||
}); | |||
} | |||
else{ | |||
this.closeMoule = null; | |||
@@ -368,7 +440,7 @@ | |||
//获取坐标是否存在 | |||
var Zb; | |||
//开始定位当前位置 | |||
getQueryLand().then(res => { | |||
this.getCurrentLocation(res => { | |||
if (res.code == 200) { | |||
let lat = res.data.lat; | |||
let lng = res.data.lng; | |||
@@ -519,6 +591,26 @@ | |||
that.closeMoule = null; | |||
that.formSubmit(); | |||
}); | |||
$("#" + this.locationMap).click(function () { | |||
that.getCurrentLocation(res => { | |||
if (res.code == 200) { | |||
let lat = res.data.lat; | |||
let lng = res.data.lng; | |||
if(lat && lng){ | |||
Zb = [lng,lat]; | |||
}else { | |||
Zb =[115.452752, 31.789033]; | |||
} | |||
map.getView().animate({ | |||
// 只设置需要的属性即可 | |||
center: ol.proj.fromLonLat(Zb), // 中心点 | |||
zoom: 18, // 缩放级别 | |||
rotation: undefined, // 缩放完成view视图旋转弧度 | |||
duration: 1000, // 缩放持续时间,默认不需要设置 | |||
}); | |||
} | |||
}); | |||
}); | |||
} | |||
}, | |||
}, | |||
@@ -0,0 +1,219 @@ | |||
<!-- 下拉列表组件 zhao --> | |||
<template> | |||
<div> | |||
<slot/> | |||
<van-popup v-model="popupVisible" position="bottom"> | |||
<van-picker | |||
ref="picker" | |||
:title="label" | |||
show-toolbar | |||
:columns="options" | |||
:readonly="readonly" | |||
:value-key="labelKey" | |||
:loading="loading" | |||
@confirm="onConfirm" | |||
@cancel="onCancel" | |||
@change="onChanged" | |||
/> | |||
</van-popup> | |||
</div> | |||
</template> | |||
<script> | |||
import request from "@/utils/request"; | |||
export default { | |||
name: "Selector", | |||
props: { | |||
value: { | |||
default: null, | |||
}, | |||
readonly: { | |||
type: Boolean, | |||
default: false, | |||
}, | |||
label: { | |||
type: String, | |||
default: '', | |||
}, | |||
columns: { // 列表数据 Array | |||
type: Array, | |||
default: () => [], | |||
}, | |||
labelKey: { // 名称键名 String | |||
type: String, | |||
default: 'label', | |||
}, | |||
valueKey: { // 值键名 String | |||
type: String, | |||
default: 'value', | |||
}, | |||
remoteUrl: { // 远程列表加载地址 String, 函数, 或 Promise | |||
type: [String, Function, Object], | |||
default: null, | |||
}, | |||
onRemoteResponse: { // 远程获取到结果的处理回调 String|Function 如果是函数需返回数组, 如果是字符串支持.分割 | |||
type: [String, Function], | |||
default: null, | |||
}, | |||
clear: { // 点击取消时清空绑定值 | |||
type: Boolean, | |||
default: false, | |||
}, | |||
visible: { // 打开状态 | |||
type: Boolean, | |||
default: false, | |||
}, | |||
}, | |||
watch: { | |||
value: function (newVal, oldVal) { | |||
this.internalValue = newVal; | |||
this.visibleValue = newVal; | |||
this.syncIndex(); | |||
}, | |||
columns: function (newVal, oldVal) { | |||
this.syncIndex(); | |||
}, | |||
remoteUrl: function (newVal, oldVal) { | |||
this.requestRemote(); | |||
}, | |||
onRemoteResponse: function (newVal, oldVal) { | |||
this.parseRemote(); | |||
}, | |||
visible: function (newVal, oldVal) { | |||
if(newVal != this.popupVisible) | |||
this.popupVisible = newVal; | |||
}, | |||
popupVisible: function (newVal, oldVal) { | |||
if(newVal != this.visible) | |||
this.$emit('update:visible', newVal); | |||
} | |||
}, | |||
created() { | |||
if(this.remoteUrl) | |||
this.requestRemote(); | |||
}, | |||
data() { | |||
return { | |||
popupVisible: false, | |||
internalValue: this.value, | |||
visibleValue: '', | |||
defaultIndex: 0, | |||
remoteColumns: null, | |||
loading: false, | |||
remoteResponse: null, | |||
}; | |||
}, | |||
methods: { | |||
openPopup() { | |||
if(!this.readonly) | |||
{ | |||
this.popupVisible = true; | |||
this.$nextTick(() => { | |||
this.$refs.picker.setIndexes([this.defaultIndex]); | |||
}) | |||
} | |||
}, | |||
closePopup() { | |||
this.popupVisible = false; | |||
}, | |||
onChanged(data) { | |||
this.$emit('change', data); | |||
}, | |||
onConfirm(data) { | |||
this.syncValue(data); | |||
this.$emit('input', this.internalValue); | |||
this.$emit('confirm', this.internalValue); | |||
this.closePopup(); | |||
}, | |||
onCancel() { | |||
this.closePopup(); | |||
if(this.clear) | |||
{ | |||
this.visibleValue = ''; | |||
this.internalValue = null; | |||
this.$emit('input', this.internalValue); | |||
} | |||
this.$emit('cancel'); | |||
}, | |||
getValue(data) { | |||
return typeof(data) === 'object' && this.valueKey ? data[this.valueKey] : data; | |||
}, | |||
getLabel(data) { | |||
return typeof(data) === 'object' && this.labelKey ? data[this.labelKey] : data; | |||
}, | |||
syncValue(data) { | |||
this.internalValue = this.getValue(data); | |||
this.visibleValue = this.getLabel(data); | |||
}, | |||
syncIndex() { | |||
let columns = this.getColumns(); | |||
if(!columns) | |||
return -1; | |||
for(let i in columns) | |||
{ | |||
if(this.getValue(columns[i]) == this.internalValue) { | |||
this.defaultIndex = i; | |||
this.visibleValue = this.getLabel(columns[i]); | |||
this.onChanged(columns[i]); | |||
return i; | |||
} | |||
} | |||
if(1) // 不存在 | |||
{ | |||
this.defaultIndex = -1; | |||
this.visibleValue = this.internalValue; | |||
this.onChanged(null); | |||
} | |||
return -1; | |||
}, | |||
getColumns() { | |||
return this.columns ? this.columns : this.remoteColumns; | |||
}, | |||
requestRemote() { | |||
if(!this.remoteUrl) | |||
return; | |||
this.loading = true; | |||
this.remoteColumns = []; | |||
let promise = typeof(this.remoteUrl) === 'function' ? this.remoteUrl() : (this.remoteUrl instanceof Promise ? this.remoteUrl : request(this.remoteUrl)); | |||
promise.then((resp) => { | |||
this.remoteResponse = resp; | |||
this.parseRemote(); | |||
this.syncIndex(); | |||
}).catch((e) => { | |||
console.error(e); | |||
}).finally(() => { | |||
this.loading = false; | |||
}) | |||
}, | |||
parseRemote() { | |||
if(!this.remoteResponse) | |||
return; | |||
let type = typeof(this.onRemoteResponse); | |||
if(type === 'function') | |||
this.remoteColumns = this.onRemoteResponse(this.remoteResponse); | |||
else if(type === 'string') | |||
{ | |||
let arr = this.onRemoteResponse.split('.'); | |||
let ptr = this.remoteResponse; | |||
for(let i in arr) | |||
{ | |||
ptr = this.remoteResponse[arr[i]]; | |||
} | |||
this.remoteColumns = ptr; | |||
} | |||
else | |||
this.remoteColumns = this.remoteResponse; | |||
}, | |||
}, | |||
computed: { | |||
options() { | |||
return this.columns ? this.columns : (this.remoteColumns || []); | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
</style> |
@@ -8,8 +8,12 @@ | |||
<div class="search_info"> | |||
<div class="search_block"> | |||
<i class="icon"></i> | |||
<input type="text" class="ipt" v-model="queryParams.name" placeholder="搜索" @input="getSearchList"> | |||
<!-- --> | |||
<input type="text" class="ipt" v-model="queryParams.name" :placeholder="searchPlaceholder" @input="getSearchList"> | |||
<selector :visible.sync="typeVisible" v-model="queryParams.operationType" :columns="operation_type" clear value-key="dictValue" label-key="dictLabel" @confirm="refresh" @cancel="refresh"> | |||
<template> | |||
<van-icon name="filter-o" color="#1989fa" class="filter-icon" @click="openAssetType" /> | |||
</template> | |||
</selector> | |||
</div> | |||
<div class="total">共{{listLength}}个资产</div> | |||
</div> | |||
@@ -85,9 +89,11 @@ | |||
} from "@/api/sunVillage_info/fixedAssets"; | |||
import request from '@/utils/request' | |||
import MapGisTag from "@/components/Map/MapGisTagDTGCopy"; | |||
import Selector from "@/components/common/Selector.vue"; | |||
export default { | |||
name: "certificateList", | |||
components: { | |||
Selector, | |||
MapGisTag | |||
}, | |||
data() { | |||
@@ -107,6 +113,7 @@ | |||
orderByColumn:'createTime', | |||
isAsc:'desc', | |||
name:'', | |||
operationType: null, | |||
}, | |||
uploadFiles1:[], | |||
projectId:'', | |||
@@ -117,6 +124,8 @@ | |||
listMap:0, | |||
permanentId: null, // 固定资产ID | |||
permanents: [], // 固定资产列表,存储本账套下所有的固定资产信息 | |||
typeVisible: false, | |||
operation_type: [], | |||
}; | |||
}, | |||
created() { | |||
@@ -129,6 +138,9 @@ | |||
this.houseGetDicts("use_type").then((response) => { | |||
this.useTypeOptions = response.data; | |||
}); | |||
this.houseGetDicts("operation_type").then((response) => { | |||
this.operation_type = response.data; | |||
}); | |||
}, | |||
methods: { | |||
openMap(id, theGeom,index){ | |||
@@ -288,7 +300,23 @@ | |||
goAdd(){ | |||
this.$router.push('/sunVillage_info/fixedAssetsAdd') | |||
}, | |||
openAssetType() { | |||
this.typeVisible = true; | |||
}, | |||
refresh() { | |||
this.queryParams.pageNum = 1; | |||
this.listLength = 0; | |||
this.applicationList = []; | |||
this.finished = false; | |||
this.getList(); | |||
}, | |||
}, | |||
computed: { | |||
searchPlaceholder() { | |||
let typeName = this.operation_type.find((x) => x.dictValue == this.queryParams.operationType); | |||
return '搜索' + (typeName ? `${typeName.dictLabel}资产` : ''); | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
@@ -340,23 +368,38 @@ | |||
background: #fff; | |||
display: flex; | |||
border:2px solid #3494ff; | |||
padding-right: 35px; | |||
padding-right: 20px; | |||
align-items: center; | |||
position: relative; | |||
.icon{ | |||
width: 30px; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_1.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
display: inline-block; | |||
margin:0 8px 0 26px; | |||
} | |||
.ipt{ | |||
flex: 1; | |||
font-size: 26px; | |||
background: none; | |||
border:0 none; | |||
line-height: 59px; | |||
} | |||
position: absolute; | |||
left: 0; | |||
bottom: 0.15rem; | |||
} | |||
.ipt{ | |||
flex: 1; | |||
font-size: 26px; | |||
background: none; | |||
border:0 none; | |||
line-height: 59px; | |||
display: inline-block; | |||
margin-left: 64px; | |||
} | |||
.filter-icon { | |||
font-weight: bold; | |||
font-size: .4rem; | |||
width: .6rem; | |||
text-align: center; | |||
position: absolute; | |||
right: 0.2rem; | |||
bottom: 0.15rem; | |||
} | |||
} | |||
.total{ | |||
flex: 1; | |||
@@ -209,7 +209,7 @@ | |||
<van-field label="净残值(元)" input-align="right" :border="false"> | |||
<template #input> | |||
<van-stepper v-model="form.netSalvage" input-width="100" min="0.00" :decimal-length="2" @change="changeNetSalvage" /> | |||
<van-stepper v-model="form.netSalvage" input-width="100" min="0.00" :decimal-length="2" @changexxx="changeNetSalvage" /> | |||
</template> | |||
</van-field> | |||
@@ -262,7 +262,12 @@ | |||
<van-stepper v-model="form.depreciationYears" input-width="100" min="0" @change="changeDepreciationYears" /> | |||
</template> | |||
</van-field> | |||
<van-field readonly v-model="form.depreciationValue" label="累计折旧(元)" placeholder="0" input-align="right" :border="false" @change="changeDepreciationValue" /> | |||
<van-field v-model="form.depreciationValue" label="累计折旧(元)" placeholder="0" input-align="right" :border="false" @change="changeDepreciationValue" | |||
> | |||
<template #button> | |||
<van-button size="small" type="primary" round @click="calcDepreciationValue" native-type="button">重新计算</van-button> | |||
</template> | |||
</van-field> | |||
</div> | |||
<div style="margin: 16px auto;width: 50%;"> | |||
@@ -282,7 +287,6 @@ | |||
minDate:new Date(1900,1,1), | |||
applicationList:[], | |||
applicationListSecond:[], | |||
assetStatusOptions:[], | |||
form:{ | |||
assetType:'151001', | |||
operationType:'1', | |||
@@ -433,18 +437,42 @@ | |||
}, | |||
// 累计折旧变动监听 | |||
changeDepreciationValue(val) { | |||
if (this.form.originalValue != null) { | |||
// 净值 = 原值-累计折旧 | |||
this.form.netValue = this.form.originalValue - val; | |||
} | |||
if (val == null) | |||
return; | |||
// 每期折旧额 = (原值-净残值)/ 预计使用期数 | |||
let depreciation = this.form.originalValue - this.form.netSalvage; | |||
depreciation -= val; | |||
let periods = this.form.expectedYears - (this.form.depreciationYears || 0); | |||
if(periods > 0 && depreciation > 0) | |||
this.form.perYearDepreciationValue = (depreciation / periods).toFixed(2); | |||
else | |||
this.form.perYearDepreciationValue = 0; | |||
// 净值 = 原值-累计折旧 | |||
this.form.netValue = (this.form.originalValue || 0) - val; | |||
}, | |||
// 残值率变动监听 | |||
changeResidualsRate(val) { | |||
if (this.form.originalValue != null) { | |||
// 净残值 = 原值*残值率 | |||
this.form.netSalvage = (this.form.originalValue * val) / 100; | |||
if (val == null) | |||
return; | |||
// 净残值 = 原值*残值率 | |||
this.form.netSalvage = val > 0 ? ((this.form.originalValue * val) / 100).toFixed(2) : 0; | |||
if (this.form.expectedYears > 0) { | |||
// 每期折旧额 = (原值-净残值)/ 预计使用期数 | |||
let depreciation = this.form.originalValue - (this.form.netSalvage || 0); | |||
depreciation -= (this.form.depreciationValue || 0); | |||
let periods = this.form.expectedYears - (this.form.depreciationYears || 0); | |||
if(periods > 0 && depreciation > 0) | |||
this.form.perYearDepreciationValue = (depreciation / periods).toFixed(2); | |||
else | |||
this.form.perYearDepreciationValue = 0; | |||
} | |||
else | |||
this.form.perYearDepreciationValue = 0; | |||
}, | |||
// 净残值变动监听 | |||
@@ -458,18 +486,36 @@ | |||
// 预计使用年数变动监听 | |||
changeExpectedYears(val) { | |||
if (this.form.originalValue != null && this.form.netSalvage != null) { | |||
// 每年折旧额:(原值-净残值)/ 预计使用年数 | |||
this.form.perYearDepreciationValue = | |||
(this.form.originalValue - this.form.netSalvage) / val; | |||
} | |||
if (val == null) | |||
return; | |||
// 每期折旧额 = (原值-净残值)/ 预计使用期数 | |||
let depreciation = this.form.originalValue - this.form.netSalvage; | |||
depreciation -= this.form.depreciationValue; | |||
let periods = val - (this.form.depreciationYears || 0); | |||
if(periods > 0 && depreciation > 0) | |||
this.form.perYearDepreciationValue = (depreciation / periods).toFixed(2); | |||
else | |||
this.form.perYearDepreciationValue = 0; | |||
}, | |||
// 已折旧年数变动监听 | |||
changeDepreciationYears(val) { | |||
if (this.form.perYearDepreciationValue != null) { | |||
this.form.depreciationValue = val * this.form.perYearDepreciationValue; | |||
if (val == null) | |||
return; | |||
//if(!this.form.depreciationValueManual) | |||
{ | |||
if (this.form.perYearDepreciationValue > 0) { | |||
// 累计折旧 = 已折旧期数 * 每期折旧额 | |||
this.form.depreciationValue = val * this.form.perYearDepreciationValue; | |||
} | |||
else | |||
this.form.depreciationValue = 0; | |||
} | |||
// 净值 = 原值-累计折旧 | |||
this.form.netValue = (this.form.originalValue || 0) - (this.form.depreciationValue || 0); | |||
}, | |||
onSubmit(){ | |||
addPermanent(this.form).then((response) => { | |||
@@ -480,7 +526,15 @@ | |||
},2000) | |||
} | |||
}); | |||
} | |||
}, | |||
calcDepreciationValue() { | |||
this.form.depreciationValue = 0; | |||
const depreciationYears = this.form.depreciationYears; | |||
this.form.depreciationYears = 0; | |||
this.changeOriginalValue(this.form.originalValue); | |||
this.form.depreciationYears = depreciationYears; | |||
this.changeDepreciationYears(depreciationYears); | |||
}, | |||
}, | |||
} | |||
</script> | |||
@@ -143,7 +143,7 @@ | |||
let seconds = 3600; | |||
let expires = new Date(new Date() * 1 + seconds * 1000); | |||
getFamilyMemberList({idcard:this.formData.idcard,familyStatus:"02"}).then(res => { | |||
getFamilyMemberList({idcard:this.formData.idcard/*,familyStatus:"02"*/}).then(res => { | |||
const farmerCode = res.rows[0].farmerCode; | |||
Cookies.set("farmerCode",farmerCode, { expires: 30 }); | |||
Cookies.set("user", response.data, { expires: expires }); | |||
@@ -44,13 +44,9 @@ | |||
</template> | |||
<script> | |||
import { getCodeImg, getSmsCode } from "@/api/login"; | |||
import { checkFarmer, allowFaceVerify } from "@/api/sunVillage_info/fixedAssets"; | |||
import { getFamilyMemberList } from "@/api/sunVillage_info/homestead/familyMember"; | |||
import { allowFaceVerify } from "@/api/sunVillage_info/fixedAssets"; | |||
import Cookies from "js-cookie"; | |||
import { encrypt, decrypt } from "../../utils/jsencrypt"; | |||
//引用wx sdk | |||
import wx from "weixin-js-sdk"; | |||
import {farmerLogin} from "@/api/register"; | |||
export default { | |||
name: "loginFarmer", | |||
@@ -8,10 +8,14 @@ | |||
<div class="search_info"> | |||
<div class="search_block"> | |||
<i class="icon"></i> | |||
<input type="text" class="ipt" v-model="queryParams.name" placeholder="搜索" @input="getSearchList"> | |||
<!-- --> | |||
<input type="text" class="ipt" v-model="queryParams.name" :placeholder="searchPlaceholder" @input="getSearchList"> | |||
<selector :visible.sync="typeVisible" v-model="queryParams.resourceType" :columns="resource_type" clear value-key="dictValue" label-key="dictLabel" @confirm="refresh" @cancel="refresh"> | |||
<template> | |||
<van-icon name="filter-o" color="#1989fa" class="filter-icon" @click="openResourceType" /> | |||
</template> | |||
</selector> | |||
</div> | |||
<div class="total">共{{listLength}}个资产</div> | |||
<div class="total">共{{listLength}}个资源</div> | |||
</div> | |||
<div class="list_main"> | |||
<van-list | |||
@@ -80,9 +84,10 @@ | |||
} from "@/api/sunVillage_info/fixedAssets"; | |||
import request from '@/utils/request' | |||
import MapGisLine from "@/components/Map/MapGisLine"; | |||
import Selector from "@/components/common/Selector.vue"; | |||
export default { | |||
name: "certificateList", | |||
components: { MapGisLine,}, | |||
components: {Selector, MapGisLine,}, | |||
data() { | |||
return { | |||
theGeom:'', | |||
@@ -103,7 +108,8 @@ | |||
orderByColumn:'createTime', | |||
isAsc:'desc', | |||
translate_dict:1, | |||
name:'' | |||
name:'', | |||
resourceType: null, | |||
}, | |||
uploadFiles1:[], | |||
projectId:'', | |||
@@ -111,7 +117,9 @@ | |||
showBtn:true, | |||
listMap: 0, | |||
resourceId: null, // 资源ID,记录当前资源的ID | |||
resourceList: [] // 资源列表,存储本账套下所有的资源信息 | |||
resourceList: [], // 资源列表,存储本账套下所有的资源信息 | |||
typeVisible: false, | |||
resource_type: [], | |||
}; | |||
}, | |||
created() { | |||
@@ -124,6 +132,9 @@ | |||
this.houseGetDicts("use_type").then((response) => { | |||
this.useTypeOptions = response.data; | |||
}); | |||
this.houseGetDicts("resource_type").then((response) => { | |||
this.resource_type = response.data; | |||
}); | |||
}, | |||
methods: { | |||
saveGeom(){ | |||
@@ -276,7 +287,23 @@ | |||
goAdd(){ | |||
this.$router.push('/sunVillage_info/resourceAdd') | |||
}, | |||
openResourceType() { | |||
this.typeVisible = true; | |||
}, | |||
refresh() { | |||
this.queryParams.pageNum = 1; | |||
this.listLength = 0; | |||
this.applicationList = []; | |||
this.finished = false; | |||
this.getList(); | |||
}, | |||
}, | |||
computed: { | |||
searchPlaceholder() { | |||
let typeName = this.resource_type.find((x) => x.dictValue == this.queryParams.resourceType); | |||
return '搜索' + (typeName ? typeName.dictLabel : ''); | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
@@ -328,23 +355,38 @@ | |||
background: #fff; | |||
display: flex; | |||
border:2px solid #3494ff; | |||
padding-right: 35px; | |||
padding-right: 20px; | |||
align-items: center; | |||
position: relative; | |||
.icon{ | |||
width: 30px; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_1.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
display: inline-block; | |||
margin:0 8px 0 26px; | |||
position: absolute; | |||
left: 0; | |||
bottom: 0.15rem; | |||
} | |||
.ipt{ | |||
flex: 1; | |||
font-size: 26px; | |||
background: none; | |||
border:0 none; | |||
line-height: 59px; | |||
} | |||
.ipt{ | |||
flex: 1; | |||
font-size: 26px; | |||
background: none; | |||
border:0 none; | |||
line-height: 59px; | |||
display: inline-block; | |||
margin-left: 64px; | |||
} | |||
.filter-icon { | |||
font-weight: bold; | |||
font-size: .4rem; | |||
width: .6rem; | |||
text-align: center; | |||
position: absolute; | |||
right: 0.2rem; | |||
bottom: 0.15rem; | |||
} | |||
} | |||
.total{ | |||
flex: 1; | |||