@@ -84,3 +84,15 @@ export function getCentralSubjects(query) { | |||
params: query | |||
}) | |||
} | |||
//检索 | |||
export function realtimeBankList(data, dump = true) { | |||
return request({ | |||
url: '/yinnong/deposit/realtimeList', | |||
method: 'post', | |||
data: data, | |||
params: { | |||
dump, | |||
} | |||
}) | |||
} |
@@ -0,0 +1,216 @@ | |||
<!-- 下拉列表表单组件 zhao --> | |||
<template> | |||
<div> | |||
<van-field | |||
:readonly="true" | |||
:clickable="!readonly" | |||
:name="name" | |||
:value="visibleValue" | |||
:label="label" | |||
:placeholder="placeholder" | |||
@click="openPopup" | |||
input-align="right" | |||
right-icon="arrow-down" | |||
:rules="rules" | |||
:required="required" | |||
:label-width="labelWidth || 'auto'" | |||
> | |||
</van-field> | |||
<van-popup v-model="popupVisible" position="bottom"> | |||
<van-picker | |||
ref="picker" | |||
:title="label" | |||
show-toolbar | |||
:columns="columns ? columns : remoteColumns" | |||
:readonly="readonly" | |||
:value-key="valueKey" | |||
:loading="loading" | |||
@confirm="onConfirm" | |||
@cancel="onCancel" | |||
@change="onChanged" | |||
/> | |||
</van-popup> | |||
</div> | |||
</template> | |||
<script> | |||
import request from "@/utils/request"; | |||
export default { | |||
name: "fieldCascadeSelect", | |||
props: [ | |||
'name', 'readonly', 'value', 'label', 'placeholder', 'required', 'rules', 'labelWidth', | |||
'columns', // 列表数据 Array | |||
'valueKey', // 名称键名 String | |||
'dataKey', // 值键名 String | |||
'remoteUrl', // 远程列表加载地址 String | |||
'onRemoteResponse', // 远程获取到结果的处理回调 String|Function 如果是函数需返回数组, 如果是字符串支持.分割 | |||
'clearable', // 点击取消时清空绑定值 | |||
], | |||
watch: { | |||
value: function (newVal, oldVal) { | |||
this.internalValue = newVal; | |||
this.visibleValue = newVal ? newVal.join(' / ') : ''; | |||
this.syncIndex(); | |||
}, | |||
columns: function (newVal, oldVal) { | |||
this.syncIndex(); | |||
}, | |||
remoteUrl: function (newVal, oldVal) { | |||
this.requestRemote(); | |||
}, | |||
onRemoteResponse: function (newVal, oldVal) { | |||
this.parseRemote(); | |||
} | |||
}, | |||
created() { | |||
if(this.remoteUrl) | |||
this.requestRemote(); | |||
}, | |||
data() { | |||
return { | |||
popupVisible: false, | |||
internalValue: this.value, | |||
visibleValue: '', | |||
defaultIndex: [], | |||
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(); | |||
this.$emit('cancel'); | |||
if(this.clearable) | |||
{ | |||
this.visibleValue = ''; | |||
this.internalValue = []; | |||
this.$emit('input', this.internalValue); | |||
} | |||
}, | |||
getValue(data) { | |||
return typeof(data) === 'object' && this.dataKey ? data[this.dataKey] : data; | |||
}, | |||
getLabel(data) { | |||
return typeof(data) === 'object' && this.valueKey ? data[this.valueKey] : data; | |||
}, | |||
syncValue(data) { | |||
let res = []; | |||
for(let a of data) | |||
{ | |||
res.push(this.getValue(a)); | |||
} | |||
this.internalValue = res; | |||
res = []; | |||
for(let a of data) | |||
{ | |||
res.push(this.getLabel(a)); | |||
} | |||
this.visibleValue = res.join(' / '); | |||
}, | |||
syncIndex() { | |||
let columns = this.getColumns(); | |||
if(!columns) | |||
return -1; | |||
let arr = []; | |||
let dataArr = []; | |||
let ptr = columns; | |||
for(let i = 0; i < this.internalValue.length; i++) | |||
{ | |||
if(!ptr) | |||
break; | |||
let p = null; | |||
for(let m = 0; m < ptr.length; m++) | |||
{ | |||
if(this.getValue(ptr[m]) == this.internalValue[i]) { | |||
arr.push(m); | |||
dataArr.push(ptr[m]); | |||
p = ptr[m]; | |||
break; | |||
} | |||
} | |||
if(p) | |||
ptr = p.children; | |||
} | |||
if(arr.length) | |||
{ | |||
this.defaultIndex = arr; | |||
this.visibleValue = dataArr.map((x) => this.getLabel(x)).join(' / '); | |||
this.onChanged(dataArr); | |||
return dataArr; | |||
} | |||
if(1) // 不存在 | |||
{ | |||
this.defaultIndex = []; | |||
this.visibleValue = (this.internalValue || []).join(' / '); | |||
this.onChanged([]); | |||
} | |||
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; | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style scoped> | |||
</style> |
@@ -3759,6 +3759,15 @@ export const constantRoutes = [ | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLots_detail'], resolve) | |||
}, | |||
{ ////阳光村务(新)-- 标段合同中的查看标段农户 | |||
path: '/sunVillage_info/list_multipleLotsContract_nh', | |||
name: 'sunVillageInfoListMultipleLotsContractNh', | |||
meta: { | |||
title: '标段农户', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/sunVillage_info/list_multipleLotsContract_nh'], resolve) | |||
}, | |||
{ ////阳光村务(新)-- 标段农户网签 | |||
path: '/sunVillage_info/list_multipleLotsNh', | |||
name: 'sunVillageInfoListMultipleLotsNh', | |||
@@ -18,32 +18,34 @@ | |||
<van-form @submit="goModify" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | |||
<div class="main_box"> | |||
<van-field label="省" required :rules="[{ required: true , message:'请输入省' }]" v-model="form.sheng" placeholder="请输入省" input-align="right" label-width="auto"/> | |||
<van-field label="市" required :rules="[{ required: true , message:'请输入市' }]" v-model="form.shi" placeholder="请输入市" input-align="right" label-width="auto"/> | |||
<van-field | |||
readonly | |||
clickable | |||
<FieldCascadeSelect :required="true" :rules="[{ required: true , message:'请选择省市' }]" data-key="value" value-key="label" :columns="regionOptions" v-model="form.region" placeholder="请选择开户省市" label="开户省市" label-width="auto" @input="onRegionChanged"/> | |||
<FieldSelect | |||
label="所属银行" | |||
placeholder="请选择" | |||
v-model="bankType" | |||
@click="showBankType = true" | |||
input-align="right" | |||
right-icon="arrow-down" | |||
v-model="form.bankType" | |||
label-width="auto" | |||
required | |||
:required="true" | |||
:rules="[{ required: true , message:'请选择所属银行' }]" | |||
:columns="bankTypeOptions" | |||
data-key="dictValue" | |||
value-key="dictLabel" | |||
/> | |||
<van-popup v-model="showBankType" position="bottom"> | |||
<van-field label="开户行" required :rules="[{ required: true , message:'请输入开户行' }]" v-model="form.bankDeposit" placeholder="请输入开户行" input-align="right" label-width="auto"> | |||
<template #button> | |||
<van-button :disabled="!canFetch" size="small" type="primary" native-type="button" @click="searchBankAddress">手动检索</van-button> | |||
</template> | |||
</van-field> | |||
<van-popup v-model:show="showBankAddress" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="bankTypeOptions" | |||
@confirm="onConfirmBankType" | |||
@cancel="showBankType = false" | |||
value-key="bankDeposit" | |||
:columns="bankAddressOption" | |||
@confirm="onConfirmBankAddress" | |||
@cancel="showBankAddress = false" | |||
/> | |||
</van-popup> | |||
<van-field label="开户行" required :rules="[{ required: true , message:'请输入开户行' }]" v-model="form.bankDeposit" placeholder="请输入开户行" input-align="right" label-width="auto"/> | |||
<van-field label="联行号" required :rules="[{ required: true , message:'请输入联行号' }]" v-model="form.payeePaymentLines" placeholder="请输入联行号" input-align="right" label-width="auto"/> | |||
<van-field label="机构号" v-model="form.institutionNumber" placeholder="请输入机构号" input-align="right" label-width="auto"/> | |||
@@ -62,21 +64,29 @@ | |||
<script> | |||
import { addDeposit } from "@/api/onlineHome/bankAgriculture/bankOfDeposit"; | |||
import {options} from "@/api/user"; | |||
import FieldCascadeSelect from "@/components/form/FieldCascadeSelect"; | |||
import {listDeposit, realtimeBankList} from "@/api/onlineHome/bankAgriculture/paymentAccount"; | |||
import FieldSelect from "@/components/form/FieldSelect"; | |||
export default { | |||
name: "paymentAccountAdd", | |||
components: {FieldSelect, FieldCascadeSelect}, | |||
data() { | |||
return { | |||
showBankType:false, | |||
bankType:'', | |||
// 所属银行字典 | |||
bankTypeOptions: [], | |||
showBankAddress: false, | |||
bankAddressOption: [], | |||
form:{ | |||
sheng: "", //省 必填 | |||
shi: "", //市 必填 | |||
bankType: "", //所属银行 必填 | |||
bankDeposit: "", //开户行 必填 | |||
payeePaymentLines: "", //联行号 //必填 | |||
} | |||
region: [], | |||
}, | |||
}; | |||
}, | |||
created() { | |||
@@ -89,9 +99,7 @@ | |||
getDetail(){ | |||
// 所属银行 | |||
this.getDicts("bank_type_all").then(res => { | |||
for (var i = 0; i < res.data.length; i++) { | |||
this.bankTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue}); | |||
} | |||
this.bankTypeOptions = res.data; | |||
}); | |||
}, | |||
getError(e){ | |||
@@ -114,7 +122,61 @@ | |||
}, | |||
goBack(){ | |||
window.history.go(-1) | |||
} | |||
}, | |||
onRegionChanged(val) { | |||
val = val || []; | |||
this.form.sheng = val.length > 0 ? val[0] : null; | |||
this.form.shi = val.length > 1 ? val[1] : null; | |||
}, | |||
onConfirmBankAddress(value){ | |||
this.form.bankAddress = value.bankDeposit; | |||
this.form.payeePaymentLines = value.payeePaymentLines; | |||
this.form.bankDeposit = value.bankDeposit; | |||
this.showBankAddress = false; | |||
}, | |||
checkFormField(what, desc) { | |||
if(!this.form[what]) | |||
{ | |||
this.$toast({ | |||
icon: 'fail', | |||
message: '请选择' + desc, | |||
duration:"1000", | |||
}); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
searchBankAddress(){ | |||
if(!this.checkFormField('sheng', '省')) return; | |||
if(!this.checkFormField('shi', '市')) return; | |||
if(!this.checkFormField('bankType', '所属银行')) return; | |||
if(!this.checkFormField('bankDeposit', '关键词')) return; | |||
let data = { | |||
sheng: this.form.sheng, | |||
shi: this.form.shi, | |||
bankType: this.form.bankType, | |||
bankDeposit: this.form.bankDeposit, | |||
} | |||
listDeposit(data).then(response => { | |||
if (response.rows.length<1){ | |||
realtimeBankList(data, false).then(response2 => { | |||
this.bankAddressOption = response2.data; | |||
this.showBankAddress = true; | |||
}); | |||
}else{ | |||
this.bankAddressOption = response.rows; | |||
this.showBankAddress = true; | |||
} | |||
}); | |||
}, | |||
}, | |||
computed: { | |||
regionOptions() { | |||
return options; | |||
}, | |||
canFetch() { | |||
return this.form.sheng && this.form.shi && this.form.bankType && this.form.bankDeposit; | |||
}, | |||
}, | |||
} | |||
</script> | |||
@@ -41,6 +41,10 @@ | |||
<img src="../../assets/images/sunVillage_info/signature_icon_02.png" alt="" width="35"> | |||
<p>签名</p> | |||
</div> | |||
<div class="opera_btn" @click="showMultipleLotsNh(item.id)"> | |||
<img src="../../assets/images/sunVillage_info/signature_icon_03.png" alt="" width="35"> | |||
<p>查看农户</p> | |||
</div> | |||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
<p>附件</p> | |||
@@ -240,6 +244,12 @@ | |||
type: mime | |||
}) | |||
}, | |||
showMultipleLotsNh(id) { | |||
this.$router.push({ | |||
path: '/sunVillage_info/list_multipleLotsContract_nh', | |||
query: { id: id } | |||
}) | |||
}, | |||
}, | |||
} | |||
</script> | |||
@@ -0,0 +1,465 @@ | |||
<template> | |||
<div class="home_wrapper"> | |||
<div | |||
class="header_main" | |||
:style="`background-image:url(${require(showBtn?'@/assets/images/sunVillage_info/list_head.png':'@/assets/images/sunVillage_info/list_head_red.png')})`" | |||
> | |||
标段农户 | |||
<div class="return_btn" @click="onClickLeft"></div> | |||
<!-- <div class="add_btn" @click="goAdd" v-show="showBtn"></div>--> | |||
</div> | |||
<div class="list_main"> | |||
<van-list | |||
v-model="loading" | |||
:finished="finished" | |||
finished-text="没有更多了" | |||
@load="getList" | |||
> | |||
<!----1--> | |||
<van-swipe-cell v-for="item in applicationList" :key="item.id" > | |||
<div class="item" @click="goDetail(item.id)"> | |||
<div class="info"> | |||
<div class="title"> | |||
<i class="icon_box" v-if="item.secondSigning==null"></i> | |||
<i class="icon_box1" v-if="item.secondSigning!=null"></i> | |||
<p class="news_title" :style="{'color': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.memberName}}</p> | |||
<p class="tips_mark" :style="{'color': item.secondSigning!=null?'#79bc29':'#f8a83d','background': item.secondSigning!=null?'#e8ffcd':'#ffedcd'}">{{item.signingMode}}</p> | |||
<p class="tips_mark2" v-if="item.signingMode === '线上'" :style="{'background': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.secondIsSign === '是' ? '已签名' : '未签名'}}</p> | |||
</div> | |||
<div class="time"> | |||
<p :style="{'color': item.secondSigning!=null?'#2bc30c':'#eb1616'}">{{item.idcard}}</p> | |||
<p style="color:#eb1616;font-weight: bold;"><span style="font-size: 12px;">¥</span>{{item.logAmount.toFixed(2)}}</p> | |||
</div> | |||
</div> | |||
</div> | |||
<template #right> | |||
<div class="operation"> | |||
<div class="opera_btn" @click="openPopupFile(item.id)"> | |||
<img src="../../assets/images/sunVillage_info/signature_icon_04.png" alt="" width="35"> | |||
<p>附件</p> | |||
</div> | |||
</div> | |||
</template> | |||
</van-swipe-cell> | |||
</van-list> | |||
</div> | |||
<!-- 附件弹出层 --> | |||
<van-popup v-model="showFile" round closeable position="bottom" :style="{ height: '30%' }" > | |||
<div style="padding: 0 3%;"> | |||
<van-divider>附件</van-divider> | |||
<van-uploader v-model="fileList" accept="" :after-read="afterRead" @delete="deleteFile" /> <!-- accept=".jpg, .gif, .png, .jpeg, .txt, .pdf, .doc, .docx, .xls, .xlsx" --> | |||
</div> | |||
</van-popup> | |||
</div> | |||
</template> | |||
<script> | |||
import { listMultipleLotsNh, multipleLotsSecondSign, attachmentQuery, attachmentUpload, attachmentRemove } from "@/api/sunVillage_info/fixedAssets"; | |||
import vueEsign from "vue-esign"; | |||
import signatureUploadSignature from "@/views/yinnong/signatureUploadSignature"; | |||
import $ from "jquery"; | |||
import Cookies from "js-cookie"; | |||
export default { | |||
name: "sunVillageInfoListMultipleLotsContractNh", | |||
components: {vueEsign, signatureUploadSignature}, | |||
data() { | |||
return { | |||
applicationList: [], | |||
loading: false, | |||
finished: false, | |||
show: false, | |||
showFile: false, | |||
fileList: [], | |||
listLength: '0', | |||
queryParams: { | |||
pageNum: 1, | |||
pageSize: 10, | |||
multiplelotsId: null, | |||
translate_dict: 1, | |||
}, | |||
showBtn: true, | |||
signaId: '', | |||
height: null | |||
}; | |||
}, | |||
created() { | |||
this.height = window.screen.height * 1.28 - 20; | |||
this.queryParams.multiplelotsId = this.$route.query.id; | |||
}, | |||
methods: { | |||
getList() { | |||
listMultipleLotsNh(this.queryParams).then(response => { | |||
response.rows.forEach(item => { | |||
this.applicationList.push(item); | |||
}); | |||
if (this.applicationList.length >= response.total) { | |||
this.finished = true; | |||
return; | |||
} else { | |||
this.loading = false; | |||
this.queryParams.pageNum += 1; | |||
} | |||
}); | |||
}, | |||
goDetail(id) { | |||
this.$router.push({ | |||
path: '/sunVillage_info/list_multipleLotsNh_detail', | |||
query: { id: id } | |||
}) | |||
}, | |||
openPopupFile(id){ | |||
this.fileList = []; | |||
this.signaId = id; | |||
this.showFile = true; | |||
let queryParams = { | |||
tableId: id, | |||
tableName: 't_transaction_multiplelotsnh', | |||
}; | |||
attachmentQuery(queryParams).then(response => { | |||
response.rows.map(res => { | |||
// let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||
this.fileList.push({ | |||
url: '/api'+res.fileUrl, | |||
file: new File([], res.fileName,{}), | |||
id: res.id | |||
}); | |||
}) | |||
}); | |||
}, | |||
afterRead(file) { | |||
// 此时可以自行将文件上传至服务器 | |||
let params = new FormData(); | |||
params.append("tableId", this.signaId); | |||
params.append("tableName", "t_transaction_multiplelotsnh"); | |||
params.append("bizPath", "transaction"); | |||
params.append("fileType", '0'); | |||
params.append("file", file.file); | |||
params.append("userName", JSON.parse(Cookies.get('user')).memberName); | |||
attachmentUpload(params).then(response => { | |||
this.$notify({ type: 'success', message: '上传成功' }); | |||
let newFile = this.fileList[this.fileList.length - 1]; | |||
this.$set(newFile, 'id', response.id); | |||
}); | |||
}, | |||
deleteFile(file){ | |||
attachmentRemove(file.id).then(res => { | |||
this.$notify({ type: 'success', message: '删除成功' }); | |||
}); | |||
}, | |||
}, | |||
} | |||
</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; | |||
} | |||
} | |||
.record_main { | |||
padding: 30px 22px; | |||
.record_det { | |||
height: 38px; | |||
line-height: 38px; | |||
display: flex; | |||
justify-content: space-between; | |||
.year_l { | |||
font-size: 30px; | |||
display: flex; | |||
align-items: center; | |||
color: #858585; | |||
.unit { | |||
padding-left: 5px; | |||
} | |||
.icon { | |||
width: 23px; | |||
height: 12px; | |||
display: block; | |||
background: url('../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-bottom: 4px; | |||
margin-right: 8px; | |||
&.zk { | |||
transform: rotate(0deg) | |||
} | |||
&.ss { | |||
transform: rotate(180deg) | |||
} | |||
} | |||
} | |||
.total_r { | |||
font-size: 26px; | |||
letter-spacing: 2px; | |||
} | |||
} | |||
.record_list { | |||
display: flex; | |||
flex-flow: wrap; | |||
margin-top: 12PX; | |||
.flex_block { | |||
font-size: 30px; | |||
color: #878787; | |||
padding-right: 30px; | |||
&.current { | |||
color: #4199fe; | |||
font-weight: bold; | |||
} | |||
} | |||
} | |||
} | |||
.list_main { | |||
padding: 0 22px; | |||
margin-top: 15PX; | |||
.item { | |||
border-radius: 30px; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
padding: 25px 32px; | |||
margin-bottom: 20px; | |||
.info { | |||
.title { | |||
display: flex; | |||
font-size: 32px; | |||
align-items: center; | |||
height: 58px; | |||
.icon_box { | |||
width: 34px; | |||
display: block; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/signature_icon_01.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-right: 10px; | |||
flex-shrink: 0; | |||
} | |||
.icon_box1 { | |||
width: 34px; | |||
display: block; | |||
height: 30px; | |||
background: url('../../assets/images/sunVillage_info/signature_icon_01g.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-right: 10px; | |||
flex-shrink: 0; | |||
} | |||
.news_title { | |||
display: -webkit-box; | |||
-webkit-box-orient: vertical; | |||
-webkit-line-clamp: 1; | |||
word-break: break-all; | |||
overflow: hidden; | |||
} | |||
.tips_mark { | |||
background: #ffedcd; | |||
border-radius: 8px; | |||
font-size: 24px; | |||
color: #f8a83d; | |||
text-align: center; | |||
line-height: 34px; | |||
flex-shrink: 0; | |||
padding: 0 5Px; | |||
margin-left: auto; | |||
} | |||
.tips_mark2 { | |||
background: #eb1616; | |||
border-radius: 8px; | |||
font-size: 24px; | |||
color: #ffffff; | |||
text-align: center; | |||
line-height: 34px; | |||
flex-shrink: 0; | |||
padding: 0 5Px; | |||
margin-left: 10PX; | |||
} | |||
} | |||
.time { | |||
font-size: 16PX; | |||
color: #333333; | |||
display: flex; | |||
align-items: center; | |||
margin-top: 5PX; | |||
justify-content: space-between; | |||
.icon_time { | |||
width: 25px; | |||
height: 25px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||
background-size: 100% 100%; | |||
margin-right: 10px; | |||
} | |||
} | |||
} | |||
} | |||
.operation { | |||
display: flex; | |||
align-items: center; | |||
justify-content: right; | |||
text-align: center; | |||
border-radius: 30px; | |||
background: #fff; | |||
box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||
height: 100%; | |||
padding: 0 15Px; | |||
margin-left: 10PX; | |||
.opera_btn { | |||
border-radius: 50%; | |||
padding: 0 10px; | |||
&.delete { | |||
background: #df0707; | |||
margin-left: 10PX; | |||
.icon { | |||
width: 22PX; | |||
height: 29PX; | |||
background: url('../../assets/images/sunVillage_info/signature_icon_03.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
&.edit { | |||
background: #79cf13; | |||
margin-left: 10PX; | |||
.icon { | |||
width: 26PX; | |||
height: 25PX; | |||
background: url('../../assets/images/sunVillage_info/signature_icon_02.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
&.view { | |||
background: #3494ff; | |||
margin-left: 10PX; | |||
.icon { | |||
width: 29PX; | |||
height: 21PX; | |||
background: url('../../assets/images/sunVillage_info/signature_icon_04.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
&.list { | |||
background: #79cf13; | |||
margin-left: 10PX; | |||
.icon { | |||
width: 29px; | |||
height: 21px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_10.png') no-repeat; | |||
background-size: 100% 100%; | |||
display: block; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
.bottom_tips { | |||
font-size: 24px; | |||
color: #a7a6a6; | |||
text-align: center; | |||
margin-top: 32px; | |||
background: url('../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||
background-size: 260px 2px; | |||
.xs { | |||
padding: 0 8px; | |||
background: #e9e9e9; | |||
} | |||
} | |||
.signature-box { | |||
border: 1px dashed #666; | |||
margin: 2px 20px; | |||
height: 100%; | |||
/*canvas{*/ | |||
/* height: 100%!important;*/ | |||
/*}*/ | |||
} | |||
.signature-footer { | |||
transform: rotate(90deg); | |||
width: auto; | |||
position: absolute; | |||
top: 50%; | |||
left: 0PX; | |||
.clearBtn { | |||
margin-left: 15px; | |||
} | |||
} | |||
.esigh-result { | |||
margin: 15px 20px; | |||
// height: 110px; | |||
border: 1px solid #666; | |||
font-size: 0; | |||
.imgs { | |||
width: 100%; | |||
} | |||
} | |||
} | |||
</style> |