Pārlūkot izejas kodu

阳光村务

wulanhaote
庞东旭 pirms 2 gadiem
vecāks
revīzija
32bd9137b5
10 mainītis faili ar 861 papildinājumiem un 144 dzēšanām
  1. +27
    -0
      src/api/sunVillage_info/fixedAssets.js
  2. Binārs
      src/assets/images/sunVillage_info/add_icon_1.png
  3. Binārs
      src/assets/images/sunVillage_info/add_icon_2.png
  4. +18
    -0
      src/router/index.js
  5. +116
    -70
      src/views/sunVillage_info/fixedAssets.vue
  6. +196
    -0
      src/views/sunVillage_info/fixedAssetsAdd.vue
  7. +5
    -5
      src/views/sunVillage_info/index.vue
  8. +98
    -54
      src/views/sunVillage_info/information.vue
  9. +218
    -0
      src/views/sunVillage_info/informationAdd.vue
  10. +183
    -15
      src/views/sunVillage_info/login.vue

+ 27
- 0
src/api/sunVillage_info/fixedAssets.js Parādīt failu

@@ -0,0 +1,27 @@
import request from '@/utils/request'

// 查询固定资产列表
export function permanentList(query) {
return request({
url: '/asset/permanent/list',
method: 'get',
params: query
})
}
// 查询合同信息列表
export function contractionList(query) {
return request({
url: '/contraction/info/list',
method: 'get',
params: query
})
}

// 用户密码重置
export function updateUserPwd(data) {
return request({
url: '/system/user/profile/updatePwd',
method: 'post',
params: data
})
}

Binārs
src/assets/images/sunVillage_info/add_icon_1.png Parādīt failu

Pirms Pēc
Platums: 37  |  Augstums: 37  |  Izmērs: 1.5 KiB

Binārs
src/assets/images/sunVillage_info/add_icon_2.png Parādīt failu

Pirms Pēc
Platums: 41  |  Augstums: 41  |  Izmērs: 1.9 KiB

+ 18
- 0
src/router/index.js Parādīt failu

@@ -2863,6 +2863,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/fixedAssets'], resolve)
},
{ ////阳光村务(新)-- 固定资产
path: '/sunVillage_info/fixedAssetsAdd',
name: 'sunVillageInfoFixedAssetsAdd',
meta: {
title: '新增固定资产',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/fixedAssetsAdd'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/information',
name: 'sunVillageInfoInformation',
@@ -2872,6 +2881,15 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/information'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/informationAdd',
name: 'sunVillageInfoInformationAdd',
meta: {
title: '新增合同信息',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/informationAdd'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/details',
name: 'sunVillageInfoDetails',


+ 116
- 70
src/views/sunVillage_info/fixedAssets.vue Parādīt failu

@@ -2,88 +2,134 @@
<div class="home_wrapper">
<div class="header_main">
固定资产
<div class="return_btn"></div>
<div class="add_btn"></div>
<div class="return_btn" @click="onClickLeft"></div>
<div class="add_btn" @click="goAdd"></div>
</div>
<div class="search_info">
<div class="search_block">
<i class="icon"></i>
<input type="text" class="ipt" placeholder="搜索">
<input type="text" class="ipt" v-model="queryParams.name" placeholder="搜索">
<!-- @input="getSearchList"-->
</div>
<div class="total">共4个资产</div>
<div class="total">共{{listLength}}个资产</div>
</div>
<div class="list_main">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList"
>
<!--1-->
<div class="item">
<div class="item" v-for="(item,index) in applicationList">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
<div class="describe">自用</div>
<div class="title">{{item.name}}</div>
<div class="describe">{{item.useType}}</div>
</div>
<div class="order_block">
<div class="order">94400221765431088261</div>
<div class="describe">房屋及建筑物</div>
<div class="order">{{item.code}}</div>
<div class="describe">{{item.assetType}}</div>
</div>
<div class="function_block">
<div class="time">
<i class="icon"></i>
2022-05-21
{{item.buildTime}}
</div>
<div class="state sell">出售</div>
<div class="value">原值<span class="amount">¥199.00</span></div>
</div>
</div>
<!--1-->
<div class="item">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
<div class="describe">出租或出售</div>
</div>
<div class="order_block">
<div class="order">94400221765431088261</div>
<div class="describe">加工设备工厂</div>
</div>
<div class="function_block">
<div class="time">
<i class="icon"></i>
2022-05-21
</div>
<div class="state scrap">报废</div>
<div class="value">原值<span class="amount">¥199.00</span></div>
</div>
</div>
<!--1-->
<div class="item">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
<div class="describe">出租或出售</div>
</div>
<div class="order_block">
<div class="order">94400221765431088261</div>
<div class="describe">加工设备工厂</div>
</div>
<div class="function_block">
<div class="time">
<i class="icon"></i>
2022-05-21
</div>
<div class="state normal">正常</div>
<div class="value">原值<span class="amount">¥199.00</span></div>
<div :class="{'state':true,'normal':item.assetStatus == '正常','sell':item.assetStatus=='出售','scrap':item.assetStatus=='报废'}">{{item.assetStatus}}</div>
<div class="value">原值<span class="amount">¥{{item.originalValue}}</span></div>
</div>
</div>
</van-list>
</div>
<div class="bottom_tips">
<span class="xs">已经到底啦</span>
</div>
<!-- <div class="bottom_tips">-->
<!-- <span class="xs">已经到底啦</span>-->
<!-- </div>-->


</div>
</template>

<script>
import { permanentList } from "@/api/sunVillage_info/fixedAssets";
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
auditStatus:[],
loading: false,
finished: false,
listLength:'0',
searchInput:'',
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc',
name:'',
}
};
},
created() {
this.houseGetDicts("asset_status").then((response) => {
this.assetStatusOptions = response.data;
});
this.houseGetDicts("asset_type").then((response) => {
this.assetTypeOptions = response.data;
});
this.houseGetDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
},
methods: {
getList(){
setTimeout(() => {
permanentList(this.queryParams).then(response => {
this.listLength = response.total;
for (var i = 0; i < response.rows.length; i++) {
response.rows[i].assetStatus = this.selectDictLabel(this.assetStatusOptions, response.rows[i].assetStatus);
response.rows[i].assetType = this.selectDictLabel(this.assetTypeOptions, response.rows[i].assetType);
response.rows[i].useType = this.selectDictLabel(this.useTypeOptions, response.rows[i].useType);
response.rows[i].originalValue = Number(response.rows[i].originalValue ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { return $1 + ","; }).replace(/\.$/, "")
this.applicationList.push(response.rows[i]);
this.applicationListSecond.push(response.rows[i]);
}
if(this.applicationList.length >= response.total){
this.finished = true;
return;
}else{
this.loading = false;
this.queryParams.pageNum += 1 ;
}
});
}, 1000);
},
getSearchList(){
this.loading = true;
if(this.applicationListSecond.length>0&&this.queryParams.name!=""){
let newList = []
for(let j = 0 ;j<this.applicationListSecond.length;j++){
if(this.applicationListSecond[j].name.indexOf(this.queryParams.name)>-1){
newList.push(this.applicationListSecond[j]);
}
}
this.applicationList = newList
}
if(this.queryParams.name==""){
this.applicationList = this.applicationListSecond;
}
this.loading = false;
},
goAdd(){
this.$router.push('/sunVillage_info/fixedAssetsAdd')
},
},
}
</script>
<style scoped lang="scss">
.home_wrapper{
.home_wrapper{
background: #e9e9e9;
min-height: 100vh;
width: 100vw;
@@ -188,7 +234,7 @@
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 20px;
}
.describe{
height: 34px;
@@ -225,7 +271,7 @@
font-size: 24px;
color: #858585;
.icon{
width: 25px;
width: 25px;
height: 25px;
background: url('../../assets/images/sunVillage_info/fixedAssets_icon_3.png') no-repeat;
background-size: 100% 100%;
@@ -234,9 +280,9 @@
}
}
.state{
flex: 1;
/*flex: 1;*/
display: flex;
justify-content: center;
justify-content: center;
align-items: center;
&.sell{
color: #f69600;
@@ -260,7 +306,7 @@
}
}
}
}
}
.bottom_tips{
@@ -279,9 +325,9 @@
}


</style>
</style>

+ 196
- 0
src/views/sunVillage_info/fixedAssetsAdd.vue Parādīt failu

@@ -0,0 +1,196 @@
<template>
<div class="home_wrapper">
<div class="header_main">
固定资产
<div class="return_btn" @click="onClickLeft"></div>
</div>
<van-form @submit="onSubmit">
<div class="list_main">
<div class="titBox">
<img src="../../assets/images/sunVillage_info/add_icon_1.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
<p class="tit">基本信息</p>
</div>
<van-field required v-model="username" label="资产名称" placeholder="资产名称" input-align="right" :border="false" />
<van-field v-model="password" label="资产编码" placeholder="资产编码" input-align="right" :border="false" />
<van-field required v-model="password" label="资产类别" placeholder="资产类别" input-align="right" is-link :border="false" />
<van-field required v-model="password" label="增加方式" placeholder="增加方式" input-align="right" is-link :border="false" />
<van-field required v-model="password" label="构建时间" placeholder="构建时间" input-align="right" is-link :border="false" />
<van-field v-model="password" label="单元资产" placeholder="单元资产" input-align="right" :border="false" />
</div>

<div class="list_main">
<div class="titBox">
<img src="../../assets/images/sunVillage_info/add_icon_1.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
<p class="tit">资产数据</p>
</div>
<van-field required v-model="username" label="数量/面积" placeholder="数量/面积" input-align="right" :border="false" />
<van-field v-model="password" label="计量单位" placeholder="计量单位" input-align="right" />
<van-field required v-model="password" label="原值(元)" placeholder="原值(元)" input-align="right" is-link :border="false" />
<van-field required v-model="password" label="净值(元)" placeholder="净值(元)" input-align="right" is-link :border="false" />
<van-field required v-model="password" label="残值率N%" placeholder="残值率N%" input-align="right" is-link :border="false" />
<van-field v-model="password" label="净残值(元)" placeholder="净残值(元)" input-align="right" :border="false" />
<van-field v-model="password" label="资产清理科目" placeholder="资产清理科目" input-align="right" :border="false" />
<van-field v-model="password" label="资产清理(元)" placeholder="资产清理(元)" input-align="right" :border="false" />
</div>

<div style="margin: 16px;">
<van-button round block type="primary" native-type="submit">
提交
</van-button>
</div>
</van-form>
</div>
</template>
<script>
import { permanentList } from "@/api/sunVillage_info/fixedAssets";
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
auditStatus:[],
loading: false,
finished: false,
listLength:'0',
searchInput:'',
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc',
name:'',
}
};
},
created() {
this.houseGetDicts("asset_status").then((response) => {
this.assetStatusOptions = response.data;
});
this.houseGetDicts("asset_type").then((response) => {
this.assetTypeOptions = response.data;
});
this.houseGetDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
},
methods: {
getList(){
setTimeout(() => {
permanentList(this.queryParams).then(response => {
this.listLength = response.total;
for (var i = 0; i < response.rows.length; i++) {
response.rows[i].assetStatus = this.selectDictLabel(this.assetStatusOptions, response.rows[i].assetStatus);
response.rows[i].assetType = this.selectDictLabel(this.assetTypeOptions, response.rows[i].assetType);
response.rows[i].useType = this.selectDictLabel(this.useTypeOptions, response.rows[i].useType);
response.rows[i].originalValue = Number(response.rows[i].originalValue ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { return $1 + ","; }).replace(/\.$/, "")
this.applicationList.push(response.rows[i]);
this.applicationListSecond.push(response.rows[i]);
}
if(this.applicationList.length >= response.total){
this.finished = true;
return;
}else{
this.loading = false;
this.queryParams.pageNum += 1 ;
}
});
}, 1000);
},
getSearchList(){
this.loading = true;
if(this.applicationListSecond.length>0&&this.queryParams.name!=""){
let newList = []
for(let j = 0 ;j<this.applicationListSecond.length;j++){
if(this.applicationListSecond[j].name.indexOf(this.queryParams.name)>-1){
newList.push(this.applicationListSecond[j]);
}
}
this.applicationList = newList
}
if(this.queryParams.name==""){
this.applicationList = this.applicationListSecond;
}
this.loading = false;
},
},
}
</script>
<style scoped lang="scss">
.home_wrapper{
background: #e9e9e9;
min-height: 100vh;
width: 100vw;
.header_main {
height: 116px;
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat;
background-size: 100% 100%;
position: fixed;
top: 0;
left: 0;
width: 100%;
font-size: 36px;
line-height: 116px;
text-align: center;
color: #fff;
position: relative;

.return_btn {
width: 24px;
height: 43.2px;
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
background-size: 20px 36px;
position: absolute;
left: 38px;
top: 36px;
}

.add_btn {
width: 56.4px;
height: 40.8px;
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
background-size: 47px 34px;
position: absolute;
right: 38px;
top: 36px;
}
}
.list_main{
padding:25px;
background: #ffffff;
width: 94%;
margin: 25px auto 0;
border-radius: 15PX;
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
}
.titBox{
display: flex;
align-items: center;
}
.tit{
font-size: 36px;
font-weight: bold;
}
/deep/ .van-cell{
padding-left: 0!important;
padding-right: 0!important;
padding-bottom: 0!important;
}
/deep/ .van-field__label{
padding-left: 10PX;
width: 8.2em;
}
/deep/ .van-cell--required::before{
left: 0;
}

}







</style>

+ 5
- 5
src/views/sunVillage_info/index.vue Parādīt failu

@@ -15,8 +15,8 @@
<div class="nav_item n_1">财务公开榜</div>
<div class="nav_item n_2">零工公开榜</div>
<div class="nav_item n_3">重大事项</div>
<div class="nav_item n_4">固定资产</div>
<div class="nav_item n_5">合同登记</div>
<router-link :to="{name:'sunVillageInfoFixedAssets'}" class="nav_item n_4">固定资产</router-link>
<router-link :to="{name:'sunVillageInfoInformation'}" class="nav_item n_5">合同登记</router-link>
</div>
</div>
<div class="footer">
@@ -93,7 +93,7 @@
padding:0 38px;
display: flex;
flex-flow: wrap;
.nav_item{
flex:0 0 200px;
height: 249px;
@@ -106,7 +106,7 @@
text-align: center;
display: flex;
align-items: center;
justify-content: center;
justify-content: center;
padding-top: 120px;
&:nth-child(3){
margin-right: 0;
@@ -143,4 +143,4 @@
text-align: center;
}
}
</style>
</style>

+ 98
- 54
src/views/sunVillage_info/information.vue Parādīt failu

@@ -2,81 +2,125 @@
<div class="home_wrapper">
<div class="header_main">
合同信息
<div class="return_btn"></div>
<div class="add_btn"></div>
<div class="return_btn" @click="onClickLeft"></div>
<div class="add_btn" @click="goAdd"></div>
</div>
<div class="search_info">
<div class="search_block">
<i class="icon"></i>
<input type="text" class="ipt" placeholder="搜索">
</div>
<div class="total">共4个合同</div>
<div class="total">共{{listLength}}个合同</div>
</div>
<div class="list_main">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList"
>
<!--1-->
<div class="item">
<div class="item" v-for="(item,index) in applicationList">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
<div class="title">{{item.name}}</div>
</div>
<div class="order_block">
<div class="order">0000000001</div>
<div class="describe suspend">中止<i class="icon"></i></div>
<div class="order">{{item.code}}</div>
<div :class="{'describe':true,'suspend':item.contractionStatus == '撤销','normal':item.contractionStatus == '正常','undo':item.contractionStatus == '终止'}">{{item.contractionStatus}}<i class="icon"></i></div>
</div>
<div class="function_block">
<div class="value">合同金额<span class="amount">¥199.00</span></div>
<div class="value">合同金额<span class="amount">¥{{item.totalAmount}}</span></div>
<div class="startStop_time">
<div class="time"><div class="unim start">起</div>2022.05.04</div>
<div class="time"><div class="unim stop">始</div>2022.05.04</div>
</div>
</div>
</div>
<!--1-->
<div class="item">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
</div>
<div class="order_block">
<div class="order">0000000001</div>
<div class="describe normal">正常<i class="icon"></i></div>
</div>
<div class="function_block">
<div class="value">合同金额<span class="amount">¥199.00</span></div>
<div class="startStop_time">
<div class="time"><div class="unim start">起</div>2022.05.04</div>
<div class="time"><div class="unim stop">始</div>2022.05.04</div>
</div>
</div>
</div>
<!--1-->
<div class="item">
<div class="head_block">
<i class="icon"></i>
<div class="title">办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌办公桌</div>
</div>
<div class="order_block">
<div class="order">0000000001</div>
<div class="describe undo">正常<i class="icon"></i></div>
</div>
<div class="function_block">
<div class="value">合同金额<span class="amount">¥199.00</span></div>
<div class="startStop_time">
<div class="time"><div class="unim start">起</div>2022.05.04</div>
<div class="time"><div class="unim stop">始</div>2022.05.04</div>
<div class="time"><div class="unim start">起</div>{{item.startTime}}</div>
<div class="time"><div class="unim stop">止</div>{{item.endTime}}</div>
</div>
</div>
</div>

</van-list>

</div>
<div class="bottom_tips">
<span class="xs">已经到底啦</span>
</div>
<!-- <div class="bottom_tips">-->
<!-- <span class="xs">已经到底啦</span>-->
<!-- </div>-->

</div>
</template>
<style scoped lang="scss">

<script>
import { contractionList } from "@/api/sunVillage_info/fixedAssets";
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
auditStatus:[],
loading: false,
finished: false,
listLength:'0',
searchInput:'',
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc',
name:'',
}
};
},
created() {
this.houseGetDicts("contraction_status").then((response) => {
this.contractionStatusOptions = response.data;
});
},
methods: {
getList(){
setTimeout(() => {
contractionList(this.queryParams).then(response => {
this.listLength = response.total;
for (var i = 0; i < response.rows.length; i++) {
response.rows[i].contractionStatus = this.selectDictLabel(this.contractionStatusOptions, response.rows[i].contractionStatus);
response.rows[i].totalAmount = Number(response.rows[i].totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { return $1 + ","; }).replace(/\.$/, "")
this.applicationList.push(response.rows[i]);
this.applicationListSecond.push(response.rows[i]);
}
if(this.applicationList.length >= response.total){
this.finished = true;
return;
}else{
this.loading = false;
this.queryParams.pageNum += 1 ;
}
});
}, 1000);
},
getSearchList(){
this.loading = true;
if(this.applicationListSecond.length>0&&this.queryParams.name!=""){
let newList = []
for(let j = 0 ;j<this.applicationListSecond.length;j++){
if(this.applicationListSecond[j].name.indexOf(this.queryParams.name)>-1){
newList.push(this.applicationListSecond[j]);
}
}
this.applicationList = newList
}
if(this.queryParams.name==""){
this.applicationList = this.applicationListSecond;
}
this.loading = false;
},
goAdd(){
this.$router.push('/sunVillage_info/informationAdd')
},
},
}
</script>

<style scoped lang="scss">
.home_wrapper{
background: #e9e9e9;
min-height: 100vh;
@@ -182,7 +226,7 @@
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 20px;
}
}
.order_block{
@@ -233,7 +277,7 @@
}
}

}
}
.function_block{
@@ -283,7 +327,7 @@
// </div>
// </div>

}
}
.bottom_tips{
@@ -299,4 +343,4 @@
}
}
}
</style>
</style>

+ 218
- 0
src/views/sunVillage_info/informationAdd.vue Parādīt failu

@@ -0,0 +1,218 @@
<template>
<div class="home_wrapper">
<div class="header_main">
新增合同信息
<div class="return_btn" @click="onClickLeft"></div>
</div>
<van-form @submit="onSubmit">
<div class="list_main">
<div class="titBox">
<img src="../../assets/images/sunVillage_info/add_icon_1.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
<p class="tit">合同信息</p>
</div>
<van-field required v-model="form.code" label="合同编码" p laceholder="合同编码" input-align="right" :border="false" />
<van-field required v-model="form.name" label="合同名称" placeholder="合同名称" input-align="right" :border="false" />
<van-field v-model="form.assetType" label="合同类型" placeholder="合同类型" input-align="right" is-link :border="false" />
<van-field required v-model="form.contractionSource" label="合同来源" placeholder="合同来源" input-align="right" is-link :border="false" />
<van-field required v-model="form.firstParty" label="甲方名称" placeholder="甲方名称" input-align="right" is-link :border="false" />
<van-field v-model="form.firstPartyDirector" label="甲方代表" placeholder="甲方代表" input-align="right" :border="false" />
<van-field v-model="form.firstPartyPhone" label="甲方电话" placeholder="甲方电话" input-align="right" :border="false" />
<van-field required v-model="form.secondParty" label="乙方名称" placeholder="乙方名称" input-align="right" :border="false" />
<van-field v-model="form.secondPartyDirector" label="乙方代表" placeholder="乙方代表" input-align="right" :border="false" />
<van-field v-model="form.secondPartyPhone" label="乙方电话" placeholder="乙方电话" input-align="right" :border="false" />
<van-field required v-model="form.collectionPay" label="收付款类型" placeholder="收付款类型" input-align="right" :border="false" />
<van-field required v-model="form.settleType" label="结款方式" placeholder="结款方式" input-align="right" :border="false" />
<van-field required v-model="form.totalAmount" label="合同金额(元)" placeholder="合同金额(元)" input-align="right" :border="false" />
<van-field v-model="form.num" label="数量/面积" placeholder="数量/面积" input-align="right" :border="false" />
<van-field v-model="form.unit" label="计量单位" placeholder="计量单位" input-align="right" :border="false" />
<van-field required v-model="form.price" label="单价(元)" placeholder="单价(元)" input-align="right" :border="false" />
<van-field required v-model="form.receivedAmount" label="已结款(元)" placeholder="已结款(元)" input-align="right" :border="false" />
<van-field v-model="form.settledAmount" label="下次结款(元)" placeholder="下次结款(元)" input-align="right" :border="false" />
<van-field required v-model="form.buildingTime" label="签订日期" placeholder="签订日期" input-align="right" :border="false" />
<van-field required v-model="form.startTime" label="开始日期" placeholder="开始日期" input-align="right" :border="false" />
<van-field required v-model="form.endTime" label="结束日期" placeholder="结束日期" input-align="right" :border="false" />
<van-field required v-model="form.contractionStatus" label="合同状态" placeholder="合同状态" input-align="right" :border="false" />
<van-field v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false" />
</div>

<div class="list_main">
<div class="titBox">
<img src="../../assets/images/sunVillage_info/add_icon_2.png" style="width:22PX;height:22PX;margin-right: 10px;"/>
<p class="tit">招标信息</p>
</div>
<van-field required v-model="form.biddingWay" label="招标方式" placeholder="招标方式" input-align="right" :border="false" />
<van-field v-model="form.itemId" label="项目编号" placeholder="项目编号" input-align="right" />
<van-field required v-model="form.itemName" label="项目名称" placeholder="项目名称" input-align="right" is-link :border="false" />
<van-field required v-model="form.handleName" label="经办人" placeholder="经办人" input-align="right" is-link :border="false" />
<van-field required v-model="form.budget" label="预算金额(元)" placeholder="预算金额(元)" input-align="right" is-link :border="false" />
<van-field v-model="form.biddingDate" label="招标日期" placeholder="招标日期" input-align="right" :border="false" />
<van-field v-model="form.biddingType" label="招标类型" placeholder="招标类型" input-align="right" :border="false" />
<van-field v-model="form.winBiddingCompany" label="中标单位" placeholder="中标单位" input-align="right" :border="false" />
<van-field v-model="form.winBiddingPrice" label="中标金额(元)" placeholder="中标金额(元)" input-align="right" :border="false" />
<van-field v-model="form.reviewer" label="审核人" placeholder="审核人" input-align="right" :border="false" />
<van-field v-model="form.reviewTime" label="审核时间" placeholder="审核时间" input-align="right" :border="false" />
</div>

<div style="margin: 16px;">
<van-button round block type="primary" native-type="submit">
提交
</van-button>
</div>
</van-form>
</div>
</template>
<script>
import { permanentList } from "@/api/sunVillage_info/fixedAssets";
export default {
name: "certificateList",
data() {
return {
applicationList:[],
applicationListSecond:[],
assetStatusOptions:[],
auditStatus:[],
loading: false,
finished: false,
listLength:'0',
searchInput:'',
form:{},
queryParams:{
pageNum:1,
pageSize:10,
orderByColumn:'createTime',
isAsc:'desc',
name:'',
}
};
},
created() {
this.houseGetDicts("asset_status").then((response) => {
this.assetStatusOptions = response.data;
});
this.houseGetDicts("asset_type").then((response) => {
this.assetTypeOptions = response.data;
});
this.houseGetDicts("use_type").then((response) => {
this.useTypeOptions = response.data;
});
},
methods: {
getList(){
setTimeout(() => {
permanentList(this.queryParams).then(response => {
this.listLength = response.total;
for (var i = 0; i < response.rows.length; i++) {
response.rows[i].assetStatus = this.selectDictLabel(this.assetStatusOptions, response.rows[i].assetStatus);
response.rows[i].assetType = this.selectDictLabel(this.assetTypeOptions, response.rows[i].assetType);
response.rows[i].useType = this.selectDictLabel(this.useTypeOptions, response.rows[i].useType);
response.rows[i].originalValue = Number(response.rows[i].originalValue ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { return $1 + ","; }).replace(/\.$/, "")
this.applicationList.push(response.rows[i]);
this.applicationListSecond.push(response.rows[i]);
}
if(this.applicationList.length >= response.total){
this.finished = true;
return;
}else{
this.loading = false;
this.queryParams.pageNum += 1 ;
}
});
}, 1000);
},
getSearchList(){
this.loading = true;
if(this.applicationListSecond.length>0&&this.queryParams.name!=""){
let newList = []
for(let j = 0 ;j<this.applicationListSecond.length;j++){
if(this.applicationListSecond[j].name.indexOf(this.queryParams.name)>-1){
newList.push(this.applicationListSecond[j]);
}
}
this.applicationList = newList
}
if(this.queryParams.name==""){
this.applicationList = this.applicationListSecond;
}
this.loading = false;
},
onSubmit(){}
},
}
</script>
<style scoped lang="scss">
.home_wrapper{
background: #e9e9e9;
min-height: 100vh;
width: 100vw;
.header_main {
height: 116px;
background: url('../../assets/images/sunVillage_info/list_head.png') no-repeat;
background-size: 100% 100%;
position: fixed;
top: 0;
left: 0;
width: 100%;
font-size: 36px;
line-height: 116px;
text-align: center;
color: #fff;
position: relative;

.return_btn {
width: 24px;
height: 43.2px;
background: url('../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat;
background-size: 20px 36px;
position: absolute;
left: 38px;
top: 36px;
}

.add_btn {
width: 56.4px;
height: 40.8px;
background: url('../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat;
background-size: 47px 34px;
position: absolute;
right: 38px;
top: 36px;
}
}
.list_main{
padding:25px;
background: #ffffff;
width: 94%;
margin: 25px auto 0;
border-radius: 15PX;
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1);
}
.titBox{
display: flex;
align-items: center;
}
.tit{
font-size: 36px;
font-weight: bold;
}
/deep/ .van-cell{
padding-left: 0!important;
padding-right: 0!important;
padding-bottom: 0!important;
}
/deep/ .van-field__label{
padding-left: 10PX;
width: 8.2em;
}
/deep/ .van-cell--required::before{
left: 0;
}

}







</style>

+ 183
- 15
src/views/sunVillage_info/login.vue Parādīt failu

@@ -6,12 +6,13 @@
<div class="icon"></div>
<div class="title"></div>
</div>
<van-form @submit="handleLogin">
<div class="login_from">
<div class="flex_block">
<div class="flex_input_main">
<div class="icon_wrap user"></div>
<div class="input_wrap">
<input type="text" class="ipt" placeholder="用户名"/>
<input type="text" v-model="formData.username" class="ipt" placeholder="用户名"/>
</div>
</div>
</div>
@@ -19,7 +20,7 @@
<div class="flex_input_main">
<div class="icon_wrap password"></div>
<div class="input_wrap">
<input type="text" class="ipt" maxlength="16" placeholder="密码"/>
<input type="password" v-model="formData.password" class="ipt" maxlength="16" placeholder="密码"/>
</div>
<div class="showHidden ico_hide"></div>
</div>
@@ -28,19 +29,185 @@
<div class="flex_input_main valid">
<div class="icon_wrap valid"></div>
<div class="input_wrap">
<input type="text" class="ipt" maxlength="4" placeholder="请输入验证码"/>
<input type="text" v-model="formData.code" class="ipt" maxlength="4" placeholder="请输入验证码"/>
</div>
</div>
<div class="valid_main">
<img style="width: 100px" :src="codeUrl" @click="getCode" />
</div>
</div>
</div>
<div class="login_btn">
<div class="btn">登录</div>
<!-- <div class="btn" :loading="loading">登录</div>-->
<van-button
class="btn"
round
block
type="info"
native-type="submit"
:loading="loading"
>登录</van-button>
</div>

</van-form>
</div>
</template>

<script>
import { getCodeImg, getSmsCode } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from "../../utils/jsencrypt";
//引用wx sdk
import wx from "weixin-js-sdk";
export default {
name: "login",
data() {
return {
formData: {
username: "admin", //账号
password: "", //密码
// username:'',
// password:'',
code: null, //图片验证码
uuid: null, //识别uuid
mobile: null, //手机号
smsCode: null, //短信验证码
rememberMe:false
},
loading: false,
codeUrl: "", //验证码
isSmsLogin: false, //是否手机验证码
computeTime: 0,
height:0
};
},
created() {
this.getCode();
this.height = document.body.clientHeight
this.getCookie();
//调用微信公众号方法
// wx.config({
// debug: true, // 开启调试模式,
// appId: res.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
// timestamp: res.timestamp, // 必填,生成签名的时间戳
// nonceStr: res.nonceStr, // 必填,生成签名的随机串
// signature: res.signature,// 必填,签名,见附录1
// jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
// });
//分享要用encodeURIComponent()方法
},
methods: {
getCode() {
getCodeImg().then((res) => {
this.formData.uuid = res.uuid;
this.codeUrl = "data:image/gif;base64," + res.img;
});
},
getCookie() {
const username = Cookies.get("username");
const password = Cookies.get("password");
const rememberMe = Cookies.get("rememberMe");
this.formData = {
username: username === undefined ? this.formData.username : username,
password:
password === undefined ? this.formData.password : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};
},
getSmsCode() {
if (!this.computeTime) {
let myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
if (!myreg.test(this.formData.mobile)) {
this.$dialog.alert({
message: '手机号格式不正确',
});
return false;
}
getSmsCode(this.formData.mobile).then((res) => {
if (res.code === 200) {
this.$dialog.alert({
message: '验证码已发送',
});
this.loginForm.uuid = res.uuid;
this.computeTime = 60;
this.timer = setInterval(() => {
this.computeTime--;
if (this.computeTime <= 0) {
clearInterval(this.timer);
}
}, 1000);
}
});
}
},
handleLogin(values) {
console.log(this.formData.username)
console.log(this.formData.password)
if (this.isSmsLogin) {
//短信登录
let myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
if (!myreg.test(this.formData.mobile)) {
this.$dialog.alert({
message: '手机号格式不正确',
});
return false;
} else if (this.formData.smsCode == "") {
this.$dialog.alert({
message: '短信验证码不能为空',
});
return false;
}
this.loading = true;
this.$store
.dispatch("SmsLogin", this.formData)
.then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
})
.catch(() => {
this.loading = false;
});
} else {
if (this.formData.rememberMe) {
Cookies.set("username", this.formData.username, { expires: 30 });
Cookies.set("password", encrypt(this.formData.password), { expires: 30 });
Cookies.set("rememberMe", this.formData.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove("rememberMe");
}
//账号密码登录
if (this.formData.username == "") {
this.$dialog.alert({
message: '账号不能为空',
});
return false;
} else if (this.formData.password == "") {
this.$dialog.alert({
message: '密码不能为空',
});
return false;
} else if (this.formData.code == "") {
this.$dialog.alert({
message: '图片验证码不能为空',
});
return false;
}
this.$store
.dispatch("Login", this.formData)
.then(() => {
this.$router.push({ name: 'sunVillageInfoIndex' || "/" }).catch(() => {});
})
.catch(() => {
this.loading = false;
this.getCode();
});
}
},
},
};
</script>

<style scoped lang="scss">
.home_wrapper{
background: #f1f2f2;
@@ -50,7 +217,7 @@
height: 450px;
background: url('../../assets/images/sunVillage_info/login_head.png') no-repeat;
background-size: 100% 100%;
}
.focus_info{
margin-top: -74px;
@@ -148,17 +315,18 @@
.login_btn{
padding-top: 80px;
.btn{
width: 315px;
height: 70px;
background:url('../../assets/images/sunVillage_info/login_btn.png') no-repeat;
background-size: 100% 100%;
margin:0 auto;
font-size: 32px;
color: #fff;
line-height: 70px;
text-align: center;
width: 315px;
height: 70px;
background:url('../../assets/images/sunVillage_info/login_btn.png') no-repeat;
background-size: 100% 100%;
margin:0 auto;
font-size: 32px;
color: #fff;
line-height: 70px;
text-align: center;
border: none;
}
}
}

</style>
</style>

Notiek ielāde…
Atcelt
Saglabāt