Merge branch 'branch20211008'

This commit is contained in:
fengachen
2021-10-12 19:13:23 +08:00
47 changed files with 667 additions and 407 deletions
+1 -1
View File
@@ -147,7 +147,7 @@
top: 0;
width: 51%;
height: 100%;
background: #49a9ee;
background: #069F99;
/* Old browsers */
z-index: 1000;
-webkit-transform: translateX(0);
+3
View File
@@ -52,6 +52,8 @@ const removePackProject = (param) => postAction('/pack/payPackCompanyProject/rem
const batchRemovePackProject = (param) => postAction('/pack/payPackCompanyProject/removeBatch', param)
// 企业管理审核
const aduitCompany = (param) => getAction('/company/payCompanyManagement/audit', param)
// 企业管理删除确认是否有联系人
const checkContactByCompany = (param) => getAction('/company/payCompanyManagement/queryCompanyByIdFindContacts', param)
// 资料分发
const distribute = (param) => postAction('/project/payWorkingGroupDistributionRecord/add', param)
// 资料批量分发
@@ -100,6 +102,7 @@ export {
removePackProject,
batchRemovePackProject,
aduitCompany,
checkContactByCompany,
distribute,
batchDistribute,
distributeMemberList,
+1 -1
View File
@@ -171,7 +171,7 @@
// update-begin-author:sunjianlei date:20200120 for: 动态更改页面标题
changeTitle(title) {
let projectTitle = 'Jero-Boot 企业级快速开发平台'
let projectTitle = '标准所协同工作平台'
// 首页特殊处理
if (this.$route.path === indexKey) {
document.title = projectTitle
+1 -1
View File
@@ -17,7 +17,7 @@
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="toggle"/>
<span v-if="device === 'desktop'">欢迎进入来款系统管理平台</span>
<span v-if="device === 'desktop'">欢迎进入标准所协同工作平台</span>
<span v-else>Jero-Boot</span>
<user-menu :theme="theme"/>
+38 -31
View File
@@ -7,8 +7,7 @@
:title="currentTitle"
arrow-point-at-center
:mouse-enter-delay="0.1"
@visibleChange="visibleChange"
>
@visibleChange="visibleChange">
<img :src="status" @click="s"/>
</a-tooltip>
</template>
@@ -32,7 +31,7 @@ export default {
data() {
return {
currentTitle: ' ', // 气泡中显示的文字,必须有内容,否则dom选择时不会解析
hasInfo: false, // 是否有详情信息可以显示,即是否通过接口请求过数据
hasInfo: false // 是否有详情信息可以显示,即是否通过接口请求过数据
}
},
props: {
@@ -50,7 +49,7 @@ export default {
statusType: {
type: Boolean,
required: false,
default:false
default: false
},
/*
* 具体的状态值
@@ -60,8 +59,8 @@ export default {
required: false
},
// 当前需要转换key的属性, 悬浮显示实际具体内容信息时需要
// paymentRecord 来款 mail -- 邮寄 bill--邮寄
statusKey:{
// paymentRecord 来款 mail -- 邮寄 bill--开票
statusKey: {
type: String,
required: false,
default: 'paymentRecord'
@@ -76,32 +75,37 @@ export default {
computed: {
// eslint-disable-next-line vue/return-in-computed-property
status() {
if (this.statuObj.amountReceivable === '0.00' || this.statuObj.receivableAmount === '0.00' ) {
if(this.statusType){
if (this.statuObj.amountReceivable === '0.00' || this.statuObj.receivableAmount === '0.00') {
if (this.statusType) {
// 应收金额为0 未到账 未邮寄 未开票的状态
return zero
}else {
} else {
// 应收金额为0 打包 与需要开票的状态
if(this.statusNo === 0 ){
if (this.statusNo === 0) {
return error
}else if(this.statusNo === 1){
} else if (this.statusNo === 1) {
return finished
}else if(this.statusNo === 2){
} else if (this.statusNo === 2) {
return half
}
}
}else {
} else {
// 应收金额不为0 都正常判断
if(this.statusNo === 0 ){
return error
}else if(this.statusNo === 1){
if (this.statusNo === 0) {
// 开票或邮寄时,不需要发票
if ((this.statusKey === 'bill' || this.statusKey === 'mail') && this.statuObj.needInvoice === 0) {
return zero
} else {
return error
}
} else if (this.statusNo === 1) {
return finished
}else if(this.statusNo === 2){
} else if (this.statusNo === 2) {
// 如果不是打包和需要发票
if(this.statusType){
if (this.statusType) {
return half
}else {
} else {
return finished
}
}
@@ -110,11 +114,14 @@ export default {
// 操作返回数据的key值,此处是根据业务逻辑处理的
opeStatusKey() {
let result = this.statusKey
if(this.statusKey === 'mail' || this.statusKey === 'bill') {
if (this.statusKey === 'mail' || this.statusKey === 'bill') {
result = 'mailBill'
}
return result
}
},
created() {
},
methods: {
s() {
@@ -123,9 +130,9 @@ export default {
visibleChange(visible) {
// 到账、开票、邮寄 的时候,请求接口获得相应的数据
// 判断条件 tooltip显示、 有不同的统计状态,统计状态值不为0 没有请求过详情数据
if(visible && this.statusType && this.statusNo && !this.hasInfo) {
this.getInfoFunc({id: this.statuObj.id}).then(res =>{
if(res.success) {
if (visible && this.statusType && this.statusNo && !this.hasInfo) {
this.getInfoFunc({ id: this.statuObj.id }).then(res => {
if (res.success) {
let arr = res.result[this.opeStatusKey] || []
let result = []
arr.map(tt => {
@@ -147,12 +154,12 @@ export default {
let result = ''
console.log(item)
// 来款
if(this.statusKey === 'paymentRecord') {
result = `${item.paymentDate}到账${item.amountReceived}`
} else if(this.statusKey === 'bill') {
result = `${item.billDate}新增发票,发票单号:${item.billNo}`
} else if(this.statusKey === 'mail') {
result = `${item.sendDate}新增邮寄信息,邮寄单号:${item.postNo}`
if (this.statusKey === 'paymentRecord') {
result = `${ item.paymentDate }到账${ item.amountReceived }`
} else if (this.statusKey === 'bill') {
result = `${ item.billDate }新增发票,发票单号:${ item.billNo }`
} else if (this.statusKey === 'mail') {
result = `${ item.sendDate }新增邮寄信息,邮寄单号:${ item.postNo }`
}
return result
}
@@ -165,7 +172,7 @@ export default {
</style>
<style>
/* 自定义tooltip下样式问题*/
.status-tooltip .ant-tooltip-inner{
white-space: pre-wrap!important;
.status-tooltip .ant-tooltip-inner {
white-space: pre-wrap !important;
}
</style>
+125 -103
View File
@@ -14,22 +14,35 @@
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
@paste.native.capture.prevent="handleOperate"
autocomplete="new-password"
label="旧密码">
<a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]" />
<a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]"/>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="新密码">
<a-input type="password" placeholder="请输入新密码" v-decorator="[ 'password', validatorRules.password]" />
<a-input
type="password"
placeholder="请输入新密码"
@paste.native.capture.prevent="handleOperate"
autocomplete="new-password"
v-decorator="[ 'password', validatorRules.password]"/>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="确认新密码">
<a-input type="password" @blur="handleConfirmBlur" placeholder="请确认新密码" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
<a-input
type="password"
@blur="handleConfirmBlur"
placeholder="请确认新密码"
@paste.native.capture.prevent="handleOperate"
autocomplete="new-password"
v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item>
</a-form>
@@ -39,116 +52,125 @@
<script>
import { putAction } from '@/api/manage'
import { putAction } from '@/api/manage'
export default {
name: 'UserPassword',
data () {
return {
title:'修改密码',
modalWidth:800,
visible: false,
confirmLoading: false,
validatorRules:{
oldpassword:{
rules: [{
required: true, message: '请输入旧密码!',
}],
},
password:{
rules: [
{ required: true, message: '请输入新密码!' },
{ pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8位数字、大小写字母和特殊符号组成!'},
{ validator: this.validateToNextPassword }
]
},
confirmpassword:{
rules: [
{ required: true, message: '请确认新密码!' },
{ pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8位数字、大小写字母和特殊符号组成!'},
{ validator: this.validateToNextPassword }
]
}
export default {
name: 'UserPassword',
data() {
return {
title: '修改密码',
modalWidth: 800,
visible: false,
confirmLoading: false,
validatorRules: {
oldpassword: {
rules: [{
required: true, message: '请输入旧密码!'
}]
},
confirmDirty:false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
password: {
rules: [
{ required: true, message: '请输入新密码!' },
{
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
message: '密码由8位数字、大小写字母和特殊符号组成!'
},
{ validator: this.validateToNextPassword }
]
},
confirmpassword: {
rules: [
{ required: true, message: '请确认新密码!' },
{
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
message: '密码由8位数字、大小写字母和特殊符号组成!'
},
{ validator: this.validateToNextPassword }
]
}
},
confirmDirty: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
form:this.$form.createForm(this),
url: 'sys/user/updatePassword',
username:'',
form: this.$form.createForm(this),
url: 'sys/user/updatePassword',
username: ''
}
},
methods: {
show(uname) {
if (!uname) {
this.$message.warning('当前系统无登录用户!')
return
} else {
this.username = uname
this.form.resetFields()
this.visible = true
}
},
methods: {
show(uname){
if(!uname){
this.$message.warning('当前系统无登录用户!')
return
}else{
this.username = uname
this.form.resetFields()
this.visible = true
handleCancel() {
this.close()
},
close() {
this.$emit('close')
this.visible = false
this.disableSubmit = false
this.selectedRole = []
},
handleOk() {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let params = Object.assign({ username: this.username }, values)
console.log('修改密码提交数据', params)
putAction(this.url, params).then((res) => {
if (res.success) {
console.log(res)
that.$message.success(res.message)
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
},
handleCancel () {
this.close()
},
close () {
this.$emit('close')
this.visible = false
this.disableSubmit = false
this.selectedRole = []
},
handleOk () {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
let params = Object.assign({username:this.username},values)
console.log('修改密码提交数据',params)
putAction(this.url,params).then((res)=>{
if(res.success){
console.log(res)
that.$message.success(res.message)
that.close()
}else{
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
},
validateToNextPassword (rule, value, callback) {
const form = this.form
if (value && this.confirmDirty) {
form.validateFields(['confirm'], { force: true })
}
callback()
},
compareToFirstPassword (rule, value, callback) {
const form = this.form
if (value && value !== form.getFieldValue('password')) {
callback('两次输入的密码不一样!')
} else {
callback()
}
},
handleConfirmBlur (e) {
const value = e.target.value
this.confirmDirty = this.confirmDirty || !!value
})
},
validateToNextPassword(rule, value, callback) {
const form = this.form
if (value && this.confirmDirty) {
form.validateFields(['confirm'], { force: true })
}
callback()
},
compareToFirstPassword(rule, value, callback) {
const form = this.form
if (value && value !== form.getFieldValue('password')) {
callback('两次输入的密码不一样!')
} else {
callback()
}
},
handleConfirmBlur(e) {
const value = e.target.value
this.confirmDirty = this.confirmDirty || !!value
},
// 密码禁止粘贴
handleOperate() {
return false
}
}
}
</script>
<style scoped>
@@ -34,8 +34,11 @@
@change="handleImportExcel" v-has="'company:import'">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<a-button type="primary" icon="export" @click="handleExportXls('单位/开票信息')" v-has="'company:export'">导出</a-button>
<a-button type="primary" icon="download" @click="downTemplate('单位/开票信息导入模板')" v-has="'company:downTemplate'">下载模板</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('单位/开票信息')" v-has="'company:export'">导出
</a-button>
<a-button type="primary" icon="download" @click="downTemplate('单位/开票信息导入模板')" v-has="'company:downTemplate'">
下载模板
</a-button>
<a-button type="danger" icon="delete" @click="batchDel" v-has="'company:batchDel'">批量删除</a-button>
</div>
<!-- 操作按钮区域-end-->
@@ -61,9 +64,10 @@
</template>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleAudit(record.id)" v-if="record.dataSource===2 && record.status===2" v-has="'company:confirm'">确认</a>
<a @click="handleAudit(record.id)" v-if="record.dataSource===2 && record.status===2"
v-has="'company:confirm'">确认</a>
<a @click="handleEdit(record)" v-has="'company:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has="'company:delete'">删除</a>
<a @click="confirmDelete(record)" v-has="'company:delete'">删除</a>
</span>
</a-table>
</div>
@@ -78,7 +82,8 @@ import JEllipsis from '@comp/jero/JEllipsis'
import BusinessManagementModule from './modules/BusinessManagementModule'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import IconImg from '@/assets/imgs/icon/icon_company_management.png'
import { aduitCompany } from '../../api/incomePaymentsApi'
import { aduitCompany, checkContactByCompany } from '../../api/incomePaymentsApi'
import { getAction } from '../../api/manage'
export default {
name: 'BusinessManagement',
@@ -159,7 +164,7 @@ export default {
}
],
url: {
list: '/company/payCompanyManagement/list',
list: '/company/payCompanyManagement/queryCompanyPageList',
delete: '/company/payCompanyManagement/delete',
deleteBatch: '/company/payCompanyManagement/deleteBatch',
exportXlsUrl: '/company/payCompanyManagement/exportXls',
@@ -177,9 +182,9 @@ export default {
const that = this
this.$confirm({
title: '确认',
content: '确认该单位信息吗?',
content: '确认该单位/开票信息吗?',
onOk: function () {
aduitCompany({id: id}).then((res) => {
aduitCompany({ id: id }).then((res) => {
if (res.success) {
that.$message.success(res.result)
that.loadData()
@@ -189,6 +194,91 @@ export default {
})
}
})
},
/**
* 单个删除的确认
* @param record
*/
confirmDelete(record) {
const that = this
checkContactByCompany({ id: record.id }).then((res) => {
if (res.success) {
let confirmContent = '确定要删除该企业吗?'
if (res.result && res.result.length > 0) {
confirmContent = `${ res.result.join(',').toString() }下有联系人,确定要删除该企业吗?`
}
this.$confirm({
title: '确认删除',
content: confirmContent,
onOk: function () {
getAction(that.url.delete, { id: record.id }).then((res) => {
if (res.success) {
that.$message.success(res.message)
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
if (that.ipagination.current > 1 && ((that.ipagination.current - 1) * that.ipagination.pageSize) + 1 === that.ipagination.total) {
that.ipagination.current -= 1
}
that.loadData()
} else {
that.$message.warning(res.message)
}
})
}
})
} else {
that.$message.warning(res.message)
}
})
},
batchDel() {
if (!this.url.deleteBatch) {
this.$message.error('请设置url.deleteBatch属性!')
return
}
if (this.selectedRowKeys.length <= 0) {
this.$message.warning('请选择一条记录!')
return
} else {
let ids = ''
for (let a = 0; a < this.selectedRowKeys.length; a++) {
ids += this.selectedRowKeys[a] + ','
}
checkContactByCompany({ id: ids }).then((res) => {
if (res.success) {
let confirmContent = '是否删除选中数据?'
if (res.result && res.result.length > 0) {
confirmContent = `${res.result.join(',').toString()}下有联系人,确定要删除选中企业吗?`
}
const that = this
this.$confirm({
title: '确认删除',
content: confirmContent,
onOk: function () {
that.loading = true
getAction(that.url.deleteBatch, { ids: ids }).then((res) => {
if (res.success) {
that.$message.success(res.message)
// 判断当前删除的数据是否是最后一页的全部数据,如果是的话页码减一
if (that.ipagination.current > 1 && (that.ipagination.current === Math.ceil(that.ipagination.total / that.ipagination.pageSize)) &&
that.selectedRowKeys.length === that.dataSource.length
) {
that.ipagination.current -= 1
}
that.loadData()
that.onClearSelected()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.loading = false
})
}
})
} else {
this.$message.warning(res.message)
}
})
}
}
}
}
@@ -13,7 +13,7 @@
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="企业名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入公司名称"
<a-input placeholder="请输入企业名称"
v-decorator="['companyName',validatorRules.companyName]"
:maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
@@ -23,7 +23,7 @@
<a-form-item label="信用代码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入信用代码"
v-decorator="['dutyCode', validatorRules.dutyCode]"
:maxLength='50'
:maxLength='18'
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item>
</a-col>
@@ -97,11 +97,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -214,11 +209,14 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
// values.dataSource = this.dataForm
// values.signingUp = this.applyAdd
let httpurl = ''
@@ -239,8 +237,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -258,7 +260,7 @@ export default {
if (phoneReg(value) || isPhone(value)) {
callback()
} else {
callback('请填写正确的电话号码')
callback('请输入正确的电话号码')
}
return
}
@@ -97,10 +97,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -237,11 +233,14 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
// 处理企业名称和id等信息
values.companyName = values.company.companyName
values.companyId = values.company.id
@@ -266,8 +265,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -349,7 +349,7 @@ export default {
this.$refs.installmentForm.initInstallmentList([])
// 税率默认为6
this.$nextTick(() => {
this.form.setFieldsValue({rate: 6})
this.form.setFieldsValue({ rate: 6 })
})
this.rateNum = 6 / 100
},
@@ -397,9 +397,12 @@ export default {
handleSave() {
// 验证分期信息
this.$refs.installmentForm.handleSave()
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
this.confirmLoading = true
if (this.installmentList && this.installmentList.length > 0) {
let formData = {}
formData.installment = this.installmentList
@@ -423,11 +426,15 @@ export default {
this.$message.warning(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
} else {
this.confirmLoading = false
}
})
},
@@ -546,7 +553,7 @@ export default {
* @param e
*/
noTaxChange(e) {
e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim()
e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
this.inputNoTaxAmount = Number(e.target.value)
this.calculateContractAmount()
},
@@ -573,7 +580,7 @@ export default {
}
let contractNum = this.inputNoTaxAmount * (1 + this.rateNum)
contractNum = contractNum.toFixed(2)
this.form.setFieldsValue({contractAmount: contractNum})
this.form.setFieldsValue({ contractAmount: contractNum })
},
/**
* 应收金额输入
@@ -74,13 +74,6 @@ export default {
]
}
},
watch: {
isPack(value) {
if (value) {
this.projectType.splice(2, 1)
}
}
},
methods: {
open() {
this.visible = true
@@ -32,10 +32,6 @@
</a-form-item>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick :loading="confirmLoading">确定</a-button>
</template>
</j-modal>
</template>
@@ -84,9 +80,12 @@ export default {
methods: {
handleOk() {
// 触发表单验证
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
this.confirmLoading = true
values.contractId = this.contractId
const formData = Object.assign(this.model, values)
console.log('表单提交数据', formData)
@@ -99,8 +98,12 @@ export default {
this.$message.warning(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -232,7 +232,7 @@
</div>
<!-- /分期信息-->
<a-form-item class="table-operator">
<a-button type="primary" @click="handleSave" v-preventclick>保存</a-button>
<a-button type="primary" @click="handleSave" :loading="confirmLoading">保存</a-button>
<a-button @click="handleCancle">取消</a-button>
</a-form-item>
</a-form>
@@ -487,6 +487,10 @@ export default {
* 表单提交
*/
handleSave() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
// 验证分期信息
this.$refs.installmentForm.handleSave()
this.form.validateFields((err, values) => {
@@ -518,11 +522,15 @@ export default {
this.$message.warning(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
} else {
this.confirmLoading = false
}
})
},
@@ -799,13 +807,13 @@ export default {
break
// 会议项目
case 3:
// 传入合同信息
this.$refs.selectMeetingProjectModule.open(this.newFormData)
// 打包为是不能选择关联会议项目
if (this.newFormData.pack === 1) {
this.$message.warn('打包不可选择会议项目')
} else {
// 传入合同信息
this.$refs.selectMeetingProjectModule.open(this.newFormData)
}
// if (this.newFormData.pack === 1) {
// this.$message.warn('打包不可选择会议项目')
// } else {
// }
break
// 会员项目
case 4:
@@ -97,11 +97,6 @@
:is-contract-num-disabled="true"
:flag="1"
@ok="selectProjectOk"></general-project-module>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -288,11 +283,15 @@ export default {
this.$emit('ok')
},
handleOk() {
if (this.selectedRowKeys.length <= 0) {
this.$message.warn('请选择项目后再提交关联')
if (this.confirmLoading) {
return
}
this.confirmLoading = true
if (this.selectedRowKeys.length <= 0) {
this.$message.warn('请选择项目后再提交关联')
this.confirmLoading = false
return
}
let submitData = []
let projectItem
this.selectedRowKeys.forEach(item => {
@@ -311,7 +310,9 @@ export default {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
},
handleCancel() {
@@ -80,11 +80,6 @@
:is-contract-num-disabled="true"
:flag="1"
:default-charge-way="2"></working-group-member-unit-module>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -179,11 +174,15 @@ export default {
this.$emit('ok')
},
handleOk() {
if (this.selectedRowKeys.length <= 0) {
this.$message.warn('请选择项目后再提交关联')
if (this.confirmLoading) {
return
}
this.confirmLoading = true
if (this.selectedRowKeys.length <= 0) {
this.$message.warn('请选择项目后再提交关联')
this.confirmLoading = false
return
}
let submitData = []
let projectItem
this.selectedRowKeys.forEach(item => {
@@ -203,7 +202,9 @@ export default {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
},
handleCancel() {
@@ -76,11 +76,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -148,6 +143,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -175,8 +174,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -34,11 +34,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -93,6 +88,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -116,8 +115,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -36,10 +36,6 @@
:maxLength='200'
@change="e => {e.target.value = (e.target.value + '').trim()}"/>
</a-form-item>
<a-form-item class="table-operator">
<a-button type="primary" @click="handleOk" v-preventclick>保存</a-button>
<a-button @click="handleCancle">取消</a-button>
</a-form-item>
</a-form>
</a-spin>
</div>
@@ -113,6 +109,10 @@ export default {
})
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
@@ -136,9 +136,13 @@ export default {
this.$message.warning(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
this.initDirectoryList()
})
} else {
this.confirmLoading = false
}
})
},
@@ -339,7 +339,10 @@ export default {
})
// 选中项目非同一企业
if (!isAllEqual(companyArr)) {
reject('请选择来款单位为同一企业的项目合并开票')
reject('请选择来款单位为同一企业的项目合并开票')
}
if (arr.some(item => item.invoiceAmount && Number(item.invoiceAmount) === Number(item.receivableAmount))) {
reject('存在已完成开票的项目!')
}
this.selectedCompany = {
id: arr[0].chargeCompanyId,
@@ -35,11 +35,6 @@
</a-form-item>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -109,6 +104,10 @@ export default {
})
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
values.projectId = this.projectId
@@ -130,7 +129,13 @@ export default {
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -41,11 +41,6 @@
</a-form-item>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -137,6 +132,10 @@ export default {
})
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
// values.chargeCompanyName = this.chargeCompanyName
@@ -170,7 +169,13 @@ export default {
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -574,7 +574,7 @@ export default {
// 生成会议报名二维码
this.signUpQRCode = await this.generateQRCode(this.signUpHerfUrl)
// 生成签到二维码
this.signInQRCode = await this.generateQRCode('https://www.baidu.com')
this.signInQRCode = await this.generateQRCode(this.signInUrl)
},
computed: {
// 标协会议类型
@@ -601,6 +601,10 @@ export default {
// 报名链接
signUpHerfUrl() {
return `${window._CONFIG['singUpQRCodeURL']}?id=${this.$route.query.id}`
},
// 签到地址
signInUrl() {
return `${window._CONFIG['signInUrl']}?id=${this.$route.query.id}`
}
},
methods: {
@@ -59,7 +59,7 @@ export default {
// 列表选择的key值
meetingSituationIds:[],
url: {
add: '/meeting/payMeetingSituation/addDock',
add: '/meeting/internalMeetingSituation/addDock',
}
}
},
@@ -99,6 +99,16 @@
<status-slot :statu-obj="record" :status-no="text" :status-type="true"></status-slot>
</template>
<!-- 开票-->
<template slot="status-bill" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="bill"></status-slot>
</template>
<!-- 邮寄-->
<template slot="status-mail" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
</template>
<template slot="status-pack" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text"></status-slot>
</template>
@@ -199,13 +209,13 @@ export default {
title: '开票',
align: 'center',
dataIndex: 'makeInvoice',
scopedSlots: {customRender: 'status'}
scopedSlots: {customRender: 'status-bill'}
},
{
title: '邮寄',
align: 'center',
dataIndex: 'mail',
scopedSlots: {customRender: 'status'}
scopedSlots: {customRender: 'status-mail'}
},
{
title: '操作',
@@ -134,6 +134,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -151,8 +155,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -140,6 +140,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -166,8 +170,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -59,11 +59,6 @@
</a-table>
</div>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -197,6 +192,10 @@ export default {
this.$forceUpdate()
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
let formData = []
@@ -221,7 +220,13 @@ export default {
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -94,11 +94,6 @@
</a-table>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -341,6 +336,10 @@ export default {
})
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
this.form.validateFields((err, values) => {
if (!err) {
let bmpList = []
@@ -367,7 +366,13 @@ export default {
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -93,11 +93,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -205,6 +200,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -228,8 +227,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -71,11 +71,6 @@
</a-table>
</div>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -197,8 +192,13 @@ export default {
},
methods: {
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
if (this.selectedRowKeys.length === 0) {
this.$message.warn('请至少选择一个项目')
this.confirmLoading = false
return
}
let projectIds = this.selectedRowKeys.join(',')
@@ -214,6 +214,10 @@ export default {
} else {
this.$message.warn(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
},
handleCancel() {
@@ -316,12 +316,12 @@ export default {
chargeNoticeList: [], // 收费通知号选项
importParam: {},
// 给定当年作为来款年份默认查询条件
queryParam: {
paymentDate: new Date().getFullYear().toString()
},
lastQueryParam: {
paymentDate: new Date().getFullYear().toString()
},
// queryParam: {
// paymentDate: new Date().getFullYear().toString()
// },
// lastQueryParam: {
// paymentDate: new Date().getFullYear().toString()
// },
canOperate: true, // 是否可操作(负责人B不可操作)
}
},
@@ -468,15 +468,16 @@ export default {
window.open(url)
}
},
searchReset() {
this.lastQueryParam = {
paymentDate: new Date().getFullYear().toString()
}
this.queryParam = {
paymentDate: new Date().getFullYear().toString()
}
this.loadData(1)
},
// 2021 10 11 沟通后去掉了这个功能
// searchReset() {
// this.lastQueryParam = {
// paymentDate: new Date().getFullYear().toString()
// }
// this.queryParam = {
// paymentDate: new Date().getFullYear().toString()
// }
// this.loadData(1)
// },
}
}
</script>
@@ -8,7 +8,7 @@
<a-row>
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="文件名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入文件名称" v-model="queryParam.workGroup"></a-input>
<a-input placeholder="请输入文件名称" v-model="queryParam.fileName"></a-input>
</a-form-item>
</a-col>
<span class="table-page-search-submitButtons">
@@ -173,10 +173,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -379,6 +375,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -411,8 +411,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -61,11 +61,6 @@
<a @click="handleDelete(record.id)">删除</a>
</span>
</a-table>
<template slot="footer">
<a-button type="primary" :disabled="confirmLoading" @click="handleOk" v-preventclick>确定发布</a-button>
<a-button @click="handleCancel">取消</a-button>
</template>
</j-modal>
</template>
@@ -211,11 +206,15 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
if (this.selectionRows.length === 0) {
this.$message.warn('请至少选择一个成员单位')
this.confirmLoading = false
return
} else {
this.confirmLoading = true
const param = {
meetingIds: this.selectedMetingList,
subitemIds: this.selectedRowKeys,
@@ -231,7 +230,9 @@ export default {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
}
},
@@ -27,10 +27,6 @@
</a-form>
<a-empty v-else></a-empty>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -148,12 +144,18 @@ export default {
this.memberList = []
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
if (this.memberList.length === 0) {
this.$message.warn('当前工作组暂无成员,无法分发文件')
this.confirmLoading = false
return
}
if (this.checkedKeys.length === 0) {
this.form.validateFields()
this.confirmLoading = false
return
}
let str = this.checkedKeys.join(',').toString()
@@ -179,7 +181,9 @@ export default {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
// 单个分发
@@ -198,9 +202,13 @@ export default {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
}
} else {
this.confirmLoading = false
}
})
},
@@ -25,10 +25,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -101,6 +97,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
@@ -108,17 +108,21 @@ export default {
let params = values
params.projectId = this.projectId
params.projectType = this.projectType
postAction(this.url.add, params).then((res) => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.close()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
postAction(this.url.add, params).then((res) => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.close()
} else {
this.$message.warning(res.message)
}
}).finally(() => {
setTimeout(() => {
this.confirmLoading = false
})
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -198,10 +198,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -436,6 +432,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -471,8 +471,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
@@ -168,10 +168,6 @@
</a-row>
</a-form>
</a-spin>
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
<a-button @click="handleOk" type="primary" v-preventclick>确定</a-button>
</template>
</j-modal>
</template>
@@ -251,6 +247,9 @@ export default {
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'workingGroupProject', 'year', 'principalIdA', 'principalIdB', 'convokeNum', 'operationCycle', 'yearChargeA', 'chargeNoticeNoA', 'chargeNoticeAId', 'yearChargeB', 'chargeNoticeNoB', 'chargeNoticeBId', 'missionAndObjectives', 'remarks'))
if (!this.model.id) {
this.form.setFieldsValue({'year': (new Date().getFullYear()).toString()})
}
})
},
close() {
@@ -258,6 +257,10 @@ export default {
this.visible = false
},
handleOk() {
if (this.confirmLoading) {
return
}
this.confirmLoading = true
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
@@ -283,8 +286,12 @@ export default {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
setTimeout(() => {
this.confirmLoading = false
}, 1000)
})
} else {
this.confirmLoading = false
}
})
},
+1 -1
View File
@@ -59,7 +59,7 @@
<!-- <a-popconfirm title="确定删除吗?" @confirm="() =>handleDelete(record.id)">-->
<!-- </a-popconfirm>\-->
<a @click="handleDelete(record.id)" v-has="'sys:dict:del'">删除</a>
<!-- <a @click="handleDelete(record.id)" v-has="'sys:dict:del'">删除</a>-->
</span>
<template slot="text" slot-scope="text">
<span v-if="!text"></span>
+1 -1
View File
@@ -123,7 +123,7 @@ export default {
sorter: true
}, {
title: '角色',
dataIndex: 'roleName',
dataIndex: 'roleName_dictText',
align: 'center',
sorter: true
},
+21 -21
View File
@@ -39,28 +39,28 @@
<span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleEdit(record)">编辑</a>
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a href="javascript:;" @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="handleAddSub(record)">添加下级</a>
</a-menu-item>
<a-menu-item>
<a href="javascript:;" @click="handleDataRule(record)">数据规则</a>
</a-menu-item>
<!-- <a-dropdown>-->
<!-- <a class="ant-dropdown-link">-->
<!-- 更多 <a-icon type="down"/>-->
<!-- </a>-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a href="javascript:;" @click="handleDetail(record)">详情</a>-->
<!-- </a-menu-item>-->
<!-- <a-menu-item>-->
<!-- <a href="javascript:;" @click="handleAddSub(record)">添加下级</a>-->
<!-- </a-menu-item>-->
<!-- <a-menu-item>-->
<!-- <a href="javascript:;" @click="handleDataRule(record)">数据规则</a>-->
<!-- </a-menu-item>-->
<a-menu-item>
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- </a-popconfirm>-->
<a @click="handleDelete(record.id)">删除</a>
</a-menu-item>
</a-menu>
</a-dropdown>
<!-- <a-menu-item>-->
<!--&lt;!&ndash; <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">&ndash;&gt;-->
<!-- &lt;!&ndash; </a-popconfirm>&ndash;&gt;-->
<!-- <a @click="handleDelete(record.id)">删除</a>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- </a-dropdown>-->
</span>
<!-- 字符串超长截取省略号显示 -->
<span slot="url" slot-scope="text">
+24 -27
View File
@@ -25,27 +25,29 @@
<!-- 每年一次月日-->
<div class="m-d">
<!-- -->
<template v-if="selectDeptFrequency === '2'">
<a-select
class="select-month"
placeholder="请选择月"
allowClear
v-decorator="['deptMonth', validatorRules.deptMonth]"
:options="monthOptions">
</a-select>
</template>
<!-- -->
<template v-if="selectDeptFrequency === '2' || selectDeptFrequency === '3'">
<a-select
style="width: calc(50% - 8px)"
placeholder="请选择日"
allowClear
v-decorator="['deptDay', validatorRules.deptDay]"
:options="dayOptions">
</a-select>
</template>
<a-row :gutter="12">
<a-col :span="12">
<!-- -->
<template v-if="selectDeptFrequency === '2'">
<a-select
placeholder="请选择月"
allowClear
v-decorator="['deptMonth', validatorRules.deptMonth]"
:options="monthOptions">
</a-select>
</template>
</a-col>
<a-col :span="12">
<a-form-item v-if="selectDeptFrequency === '2' || selectDeptFrequency === '3'">
<a-select
placeholder="请选择日"
allowClear
v-decorator="['deptDay', validatorRules.deptDay]"
:options="dayOptions">
</a-select>
</a-form-item>
</a-col>
</a-row>
</div>
</a-form-item>
<a-form-item class="btn-form">
@@ -85,7 +87,7 @@ export default {
rules: [{ required: true, message: '请选择频率' }],
validateTrigger: 'change'
},
deptTime: {
time: {
rules: [{ required: true, message: '请选择催款时间' }],
validateTrigger: 'change'
},
@@ -293,11 +295,6 @@ export default {
width: 60%;
}
.select-month {
margin-right: 16px;
width: calc(50% - 8px);
}
.btn-form {
display: flex;
justify-content: center;
+3 -3
View File
@@ -22,7 +22,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="字典编码">
<a-input placeholder="请输入字典编码" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator.trim="[ 'dictCode', validatorRules.dictCode]"/>
<a-input placeholder="请输入字典编码" :disabled="!!model.id" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator.trim="[ 'dictCode', validatorRules.dictCode]"/>
</a-form-item>
<a-form-item
@@ -39,9 +39,9 @@
<script>
import pick from 'lodash.pick'
import { addDict, editDict, duplicateCheck } from '@api/api'
import { addDict, editDict } from '@api/api'
import {checkDictCode} from '@/utils/validateOnly'
import JDate from '@comp/jero/JDate'
export default {
name: 'DictModal',
+7 -7
View File
@@ -42,7 +42,7 @@
:treeData="treeData"
v-model="model.parentId"
placeholder="请选择父级菜单"
:disabled="disableSubmit"
:disabled="!!model.id"
@change="handleParentIdChange">
</a-tree-select>
</a-form-item>
@@ -51,7 +51,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="菜单路径">
<a-input @change="event => event.target.value = event.target.value.trim()" :maxLength="100" placeholder="请输入菜单路径" v-decorator="[ 'url',validatorRules.url]" :readOnly="disableSubmit"/>
<a-input :disabled="!!model.id" @change="event => event.target.value = event.target.value.trim()" :maxLength="100" placeholder="请输入菜单路径" v-decorator="[ 'url',validatorRules.url]" :readOnly="disableSubmit"/>
</a-form-item>
<a-form-item
@@ -59,7 +59,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="前端组件">
<a-input placeholder="请输入前端组件" @change="event => event.target.value = event.target.value.trim()" :maxLength="120" v-decorator="[ 'component',validatorRules.component]" :readOnly="disableSubmit"/>
<a-input :disabled="!!model.id" placeholder="请输入前端组件" @change="event => event.target.value = event.target.value.trim()" :maxLength="120" v-decorator="[ 'component',validatorRules.component]" :readOnly="disableSubmit"/>
</a-form-item>
<a-form-item
@@ -67,7 +67,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="默认跳转地址">
<a-input placeholder="请输入路由参数 redirect" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator="[ 'redirect',{}]" :readOnly="disableSubmit"/>
<a-input :disabled="!!model.id" placeholder="请输入路由参数 redirect" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator="[ 'redirect',{}]" :readOnly="disableSubmit"/>
</a-form-item>
<a-form-item
@@ -76,7 +76,7 @@
:wrapperCol="wrapperCol"
label="授权标识">
<!-- {validator: this.validatePerms }-->
<a-input placeholder="请输入授权标识, 如: user:list" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator="[ 'perms', {rules:[{ required: false, message: '请输入授权标识!' }]}]" :readOnly="disableSubmit"/>
<a-input :disabled="!!model.id" placeholder="请输入授权标识, 如: user:list" @change="event => event.target.value = event.target.value.trim()" :maxLength="50" v-decorator="[ 'perms', {rules:[{ required: false, message: '请输入授权标识!' }]}]" :readOnly="disableSubmit"/>
</a-form-item>
<a-form-item
@@ -84,7 +84,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="授权策略">
<j-dict-select-tag v-decorator="['permsType', {}]" placeholder="请选择授权策略" :type="'radio'" :triggerChange="true" dictCode="global_perms_type"/>
<j-dict-select-tag :disabled="!!model.id" v-decorator="['permsType', {}]" placeholder="请选择授权策略" :type="'radio'" :triggerChange="true" dictCode="global_perms_type"/>
</a-form-item>
@@ -93,7 +93,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="状态">
<j-dict-select-tag v-decorator="['status', {}]" placeholder="请选择状态" :type="'radio'" :triggerChange="true" dictCode="valid_status"/>
<j-dict-select-tag :disabled="!!model.id" v-decorator="['status', {}]" placeholder="请选择状态" :type="'radio'" :triggerChange="true" dictCode="valid_status"/>
</a-form-item>
+6
View File
@@ -30,11 +30,13 @@
<template v-if="!model.id">
<a-form-item label="登录密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" placeholder="请输入登录密码" :maxLength="50" autocomplete='new-password'
@paste.native.capture.prevent="handleOperate"
@change="event => event.target.value = event.target.value.trim()" :disabled="disableSubmit" v-decorator="[ 'password',validatorRules.password]"/>
</a-form-item>
<a-form-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" @blur="handleConfirmBlur" :maxLength="50" placeholder="请输入确认密码" :disabled="disableSubmit"
@paste.native.capture.prevent="handleOperate"
@change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item>
</template>
@@ -699,6 +701,10 @@ export default {
} else {
this.departIdShow = true
}
},
// 密码禁止粘贴
handleOperate() {
return false
}
}
}
+7 -5
View File
@@ -28,9 +28,8 @@
v-decorator="['password',{initialValue:'', rules: validatorRules.password.rules,validateTrigger: 'blur'}]"
size="large"
type="password"
autocomplete="false"
placeholder="请输入密码"
>
@paste.native.capture.prevent="handleOperate">
<a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
@@ -46,7 +45,6 @@
size="large"
type="text"
@change="inputCodeChange"
autocomplete="off"
placeholder="请输入验证码">
<a-icon slot="prefix" type="safety" :style="{ color: '#B3B7C2',fontSize:'20px'}"/>
</a-input>
@@ -114,7 +112,7 @@ export default {
smsSendBtn: false,
},
validatorRules:{
username:{rules: [{ required: true, message: '请输入用户名!'},{validator: this.handleUsernameOrEmail}]},
username:{rules: [{ required: true, message: '请输入帐号!'},{validator: this.handleUsernameOrEmail}]},
password:{rules: [{ required: true, message: '请输入密码!',validator: 'click'}]},
mobile:{rules: [{validator:this.validateMobile}]},
captcha:{rule: [{ required: true, message: '请输入验证码!'}]},
@@ -131,11 +129,11 @@ export default {
}
},
created () {
document.title = '标准所协同工作平台'
this.currdatetime = new Date().getTime()
Vue.ls.remove(ACCESS_TOKEN)
this.getRouterData()
this.handleChangeCheckCode()
},
methods: {
...mapActions(['Login', 'Logout', 'PhoneLogin']),
@@ -307,6 +305,10 @@ export default {
}
})
},
// 密码禁止粘贴
handleOperate() {
return false
},
}
}
</script>
+42 -26
View File
@@ -19,7 +19,7 @@
>
<a-input
type="text"
v-decorator="['username',{ rules: validatorRules.username.rules}]"
v-decorator="['username',validatorRules.username]"
placeholder="请输入用户名">
</a-input>
</a-form-item>
@@ -35,7 +35,7 @@
>
<a-input
type="text"
v-decorator="['phone',{ rules: validatorRules.phone.rules}]"
v-decorator="['phone',validatorRules.phone]"
placeholder="请输入手机号">
</a-input>
</a-form-item>
@@ -50,7 +50,7 @@
:labelCol="{span: 5}"
:wrapperCol="{span: 19}">
<a-input
v-decorator="['verifyCode', { rules: validatorRules.verifyCode.rules}]"
v-decorator="['verifyCode', validatorRules.verifyCode]"
type="text"
placeholder="请输入验证码">
</a-input>
@@ -72,7 +72,9 @@
:wrapperCol="{span: 19}">
<a-input
placeholder="请输入新密码"
v-decorator="['password', { rules: validatorRules.password.rules}]"
v-decorator="['password', validatorRules.password]"
@paste.native.capture.prevent="handleOperate"
autocomplete="new-password"
type="password">
</a-input>
</a-form-item>
@@ -87,9 +89,10 @@
:wrapperCol="{span: 19}">
<a-input
placeholder="请输入确认密码"
v-decorator="['confirmPassword', { rules: validatorRules.confirmPassword.rules}]"
v-decorator="['confirmPassword', validatorRules.confirmPassword]"
type="password"
autocomplete="false">
@paste.native.capture.prevent="handleOperate"
autocomplete="new-password">
</a-input>
</a-form-item>
</a-col>
@@ -131,7 +134,9 @@ export default {
},
phone: {
rules: [
{ required: true, message: '请输入手机号码!' }, { validator: this.validatePhone }],
{ required: true, message: '请输入手机号码!' },
{ validator: this.validatePhone }
],
validateTrigger: 'blur'
},
verifyCode: {
@@ -164,6 +169,9 @@ export default {
rsaPublicKey: null // 公钥
}
},
created() {
document.title = '标准所协同工作平台'
},
methods: {
submit() {
let that = this
@@ -232,27 +240,31 @@ export default {
this.cmsFailed('手机号不能为空!')
return
}
this.state.smsSendBtn = true
let interval = window.setInterval(() => {
if (that.state.time-- <= 0) {
that.state.time = 60
that.state.smsSendBtn = false
window.clearInterval(interval)
this.form.validateFields(['phone'], { force: true }, (err) => {
if (!err) {
const hide = this.$message.loading('验证码发送中..', 0)
let smsParams = {
phone: phone
}
getAction('/sys/sendVerificationCode', smsParams).then(res => {
if (!res.success) {
setTimeout(hide, 1)
this.cmsFailed(res.message)
} else {
this.state.smsSendBtn = true
let interval = window.setInterval(() => {
if (that.state.time-- <= 0) {
that.state.time = 60
that.state.smsSendBtn = false
window.clearInterval(interval)
}
}, 1000)
}
setTimeout(hide, 500)
})
this.getPublicKey()
}
}, 1000)
const hide = this.$message.loading('验证码发送中..', 0)
let smsParams = {
phone: phone,
}
getAction('/sys/sendVerificationCode', smsParams).then(res => {
if (!res.success) {
setTimeout(hide, 1)
this.cmsFailed(res.message)
}
setTimeout(hide, 500)
})
this.getPublicKey()
},
cmsFailed(err) {
this.$notification['error']({
@@ -265,6 +277,10 @@ export default {
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
})
},
// 密码禁止粘贴
handleOperate() {
return false
}
}
}