Merge remote-tracking branch 'origin/branch20211008'
This commit is contained in:
@@ -13,7 +13,7 @@ window._CONFIG["casPrefixUrl"] = "http://cas.example.org:8443/cas";
|
||||
window._CONFIG["onlinePreviewDomainURL"] = "http://localhost:8012/onlinePreview";
|
||||
|
||||
// 会议管理报名二维码地址
|
||||
window._CONFIG['singUpQRCodeURL'] = 'http://10.0.1.27:21825/signUpEntrance'
|
||||
window._CONFIG['singUpQRCodeURL'] = 'http://localhost:3000/signUpEntrance'
|
||||
|
||||
// 签到二维码url
|
||||
window._CONFIG['signInUrl'] = '/meeting/payMeetingSituation/getSignInPage'
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
<!--进度组件-->
|
||||
<template>
|
||||
<div>
|
||||
<!-- 三项非全0-->
|
||||
<div class="progress" v-if="(data.allPayment + data.partPayment + data.notPayment) !== 0">
|
||||
<!-- 将全部付款和部分付款放入一个div中-->
|
||||
<div class="full-and-partial"
|
||||
:style="{width: (data.allPayment + data.partPayment)/(data.allPayment + data.partPayment + data.notPayment) * 100 + '%'}">
|
||||
<!-- 全部付款-->
|
||||
<div :style="{width: data.allPayment/(data.allPayment + data.partPayment) * 100 + '%'}"
|
||||
class="progress-item pay-in-full">
|
||||
class="progress-item pay-in-full" v-if="data.allPayment !== 0">
|
||||
{{ data.allPayment }}
|
||||
</div>
|
||||
<!-- 部分付款-->
|
||||
<div :style="{width: data.partPayment/(data.allPayment + data.partPayment) * 100 + '%'}"
|
||||
class="progress-item partial-payment">
|
||||
class="progress-item partial-payment" v-if="data.partPayment !== 0">
|
||||
{{ data.partPayment }}
|
||||
</div>
|
||||
</div>
|
||||
<div :style="{width: data.notPayment/(data.allPayment + data.partPayment + data.notPayment) * 100 + '%'}"
|
||||
class="progress-item non-payment">
|
||||
class="progress-item non-payment" v-if="data.notPayment !== 0">
|
||||
{{ data.notPayment }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- 三项均为0-->
|
||||
<div class="progress progress-null" v-else>0</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -60,8 +64,12 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.no-display {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.full-and-partial {
|
||||
background: linear-gradient(0deg,#0075a9 0%, #008dcc 100%);
|
||||
background: linear-gradient(0deg, #0075a9 0%, #008dcc 100%);
|
||||
display: flex;
|
||||
border-radius: 10px;
|
||||
box-sizing: border-box;
|
||||
@@ -77,11 +85,11 @@ export default {
|
||||
}
|
||||
|
||||
.pay-in-full {
|
||||
background: linear-gradient(0deg,#069f99 0%, #07b1aa 100%);
|
||||
background: linear-gradient(0deg, #069f99 0%, #07b1aa 100%);
|
||||
}
|
||||
|
||||
.partial-payment {
|
||||
background: linear-gradient(0deg,#0075a9 0%, #008dcc 100%);
|
||||
background: linear-gradient(0deg, #0075a9 0%, #008dcc 100%);
|
||||
}
|
||||
|
||||
.non-payment {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="company-select">
|
||||
<a-row>
|
||||
<a-col :span="20">
|
||||
<a-input @click="chooseBusiness" :value="value[valueKey]" v-bind="$attrs" :readOnly="true"></a-input>
|
||||
<a-input @click="chooseBusiness" :value="value[valueKey]" v-bind="$attrs" :readOnly="true" unselectable="on"></a-input>
|
||||
</a-col>
|
||||
<a-col :span="4" class="form-btn" v-if="canAdd">
|
||||
<a-button v-bind="$attrs" icon="plus" @click="addCompany"></a-button>
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
allowClear
|
||||
option-filter-prop="children"
|
||||
:filter-option="filterOption">
|
||||
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ `${item.realname}(${item.orgCodeTxt})` }}</a-select-option>
|
||||
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">
|
||||
{{ `${ item.realname }(${ item.orgCodeTxt })` }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</template>
|
||||
|
||||
@@ -36,7 +38,7 @@ export default {
|
||||
* 获取所有用户
|
||||
*/
|
||||
initUserList() {
|
||||
getAllUserList({status:1}).then(res => {
|
||||
getAllUserList().then(res => {
|
||||
this.userList = res.result
|
||||
})
|
||||
},
|
||||
@@ -44,7 +46,7 @@ export default {
|
||||
filterOption(input, option) {
|
||||
console.log(option)
|
||||
return (
|
||||
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12">
|
||||
<a-form-item :label="`${index + 1}阶段应收`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-form-item :label="`${index + 1}阶段应${label}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入金额"
|
||||
v-decorator="['installmentList['+index+'].accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
|
||||
:maxLength='50'
|
||||
@@ -22,8 +22,8 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="5" :xl="8" :sm="12">
|
||||
<a-form-item :label="`${index + 1}阶段应收时间`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择应收时间"
|
||||
<a-form-item :label="`${index + 1}阶段应${label}时间`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :placeholder="`请选择应${label}时间`"
|
||||
style="width: 100%;"
|
||||
v-decorator="['installmentList['+index+'].accountsReceivableTime']"
|
||||
:trigger-change="true"
|
||||
@@ -32,7 +32,7 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12">
|
||||
<a-form-item :label="`${index + 1}阶段实收`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-form-item :label="`${index + 1}阶段实${label}`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入金额"
|
||||
v-decorator="['installmentList['+index+'].paidAmount',validatorRules.paidAmount]"
|
||||
:maxLength='50'
|
||||
@@ -42,8 +42,8 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="5" :xl="8" :sm="12">
|
||||
<a-form-item :label="`${index + 1}阶段实收时间`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择实收时间"
|
||||
<a-form-item :label="`${index + 1}阶段实${label}时间`" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :placeholder="`请选择实${label}时间`"
|
||||
style="width: 100%;"
|
||||
v-decorator="['installmentList['+index+'].paidTime',validatorRules.paidTime]"
|
||||
:trigger-change="true"
|
||||
@@ -72,6 +72,13 @@ import { money } from '../../utils/validate'
|
||||
export default {
|
||||
name: 'InstallmentForm',
|
||||
components: { JDate },
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '收'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: this.$form.createForm(this),
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<div v-if="!reloading" class="j-area-linkage">
|
||||
<!--area-cascader level-0二级联动 1-三级联动-->
|
||||
<area-cascader
|
||||
style="border-color: red"
|
||||
v-if="_type === enums.type[0]"
|
||||
:value="innerValue"
|
||||
:data="pca"
|
||||
@@ -9,7 +10,7 @@
|
||||
v-bind="$attrs"
|
||||
v-on="_listeners"
|
||||
@change="handleChange"
|
||||
:class="isActive ? 'placeholderBlack' : 'placeholderGray'"
|
||||
:class="{'placeholderBlack':isActive,'placeholderGray':!isActive,'has-error':hasError}"
|
||||
/>
|
||||
<!--area-select level-1二级联动 2-三级联动-->
|
||||
<area-select
|
||||
@@ -19,7 +20,7 @@
|
||||
v-bind="$attrs"
|
||||
v-on="_listeners"
|
||||
@change="handleChange"
|
||||
:class="isActive ? 'placeholderBlack' : 'placeholderGray'"
|
||||
:class="{'placeholderBlack':isActive,'placeholderGray':!isActive,'has-error':hasError}"
|
||||
/>
|
||||
<div v-else>
|
||||
<span style="color:red;"> Bad type value: {{_type}}</span>
|
||||
@@ -36,7 +37,13 @@ export default {
|
||||
props: {
|
||||
value: {
|
||||
type: String,
|
||||
required: false
|
||||
required: false,
|
||||
},
|
||||
// 表单是否必填控制
|
||||
hasError:{
|
||||
type:Boolean,
|
||||
required: false,
|
||||
default:false
|
||||
},
|
||||
// 组件的类型,可选值:
|
||||
// select 下拉样式
|
||||
@@ -160,6 +167,14 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
/deep/ .area-cascader-wrap .area-select:hover {
|
||||
border-color: #069f99;;
|
||||
}
|
||||
/deep/ .has-error .area-select {
|
||||
border-color: #f5222d!important;
|
||||
}
|
||||
|
||||
|
||||
///deep/.placeholderBlack .area-cascader-wrap .area-select.active {
|
||||
// color: #333 !important;
|
||||
//}
|
||||
|
||||
@@ -80,7 +80,9 @@
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (this.$route.path != indexKey) {
|
||||
// if (this.$route.path != indexKey) {
|
||||
// 在当前页面不是首页 并且有首页权限的时候,把首页增加到面板的第一位
|
||||
if (this.$route.path !== indexKey && this.$store.state.user.permissionList.find(item => item.component === 'dashboard/Analysis')) {
|
||||
this.addIndexToFirst()
|
||||
}
|
||||
// 复制一个route对象出来,不能影响原route
|
||||
|
||||
@@ -61,8 +61,8 @@
|
||||
overflow: auto;
|
||||
.container {
|
||||
width: 100%;
|
||||
min-width: 1366px;
|
||||
min-height: 768px;
|
||||
min-width: 1300px;
|
||||
min-height: 600px;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
@@ -356,7 +356,7 @@ body {
|
||||
}
|
||||
|
||||
.anticon {
|
||||
color: inherit;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,35 +7,39 @@
|
||||
</component>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'DynamicNotice',
|
||||
data () {
|
||||
return {
|
||||
compName: this.path
|
||||
export default {
|
||||
name: 'DynamicNotice',
|
||||
data() {
|
||||
return {
|
||||
compName: this.path
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
comp: function () {
|
||||
if (!this.path) {
|
||||
return null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
comp: function () {
|
||||
if(!this.path){
|
||||
return null
|
||||
// this.path中的@comp字符串会拼接组件路径为@/components@comp导致控制台报错
|
||||
let path = this.path.replace('@comp', '')
|
||||
// @views/incomePayments重复导致找不到组件
|
||||
path = path.replace('@views/incomePayments', '')
|
||||
// 这么写 是因未用数据库的路径拿不到 组件 实例
|
||||
if (path && path.includes('AuditModal')) {
|
||||
return resolve => require([`@views/incomePayments${ path }.vue`], resolve)
|
||||
} else {
|
||||
return resolve => require([`@/components${ path }.vue`], resolve)
|
||||
}
|
||||
}
|
||||
},
|
||||
props: ['path', 'formData'],
|
||||
methods: {
|
||||
detail() {
|
||||
setTimeout(() => {
|
||||
if (this.path) {
|
||||
this.$refs.compModel.open(this.formData)
|
||||
}
|
||||
// 这么写 是因未用数据库的路径拿不到 组件 实例
|
||||
if(this.path && this.path.includes('AuditModal')){
|
||||
return resolve => require([`@views/incomePayments${this.path}.vue`], resolve)
|
||||
}else {
|
||||
return resolve => require([`@/components${this.path}.vue`], resolve)
|
||||
}
|
||||
}
|
||||
},
|
||||
props: ['path','formData'],
|
||||
methods: {
|
||||
detail () {
|
||||
setTimeout(() => {
|
||||
if(this.path){
|
||||
this.$refs.compModel.open(this.formData)
|
||||
}
|
||||
}, 200)
|
||||
},
|
||||
}, 200)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -70,12 +70,12 @@ export default {
|
||||
validatorRules: {
|
||||
oldpassword: {
|
||||
rules: [{
|
||||
required: true, message: '请输入旧密码!'
|
||||
required: true, message: '请输入旧密码'
|
||||
}]
|
||||
},
|
||||
password: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入新密码!' },
|
||||
{ required: true, message: '请输入新密码' },
|
||||
{
|
||||
//原正则,3种组合时不会提示 /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/
|
||||
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
|
||||
@@ -186,14 +186,14 @@ export default {
|
||||
callback(new Error('两次密码不一致'))
|
||||
}
|
||||
if (value && !passwordReg(value)) {
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成')
|
||||
}
|
||||
callback()
|
||||
},
|
||||
compareToFirstPassword(rule, value, callback) {
|
||||
const form = this.form
|
||||
if (value && value !== form.getFieldValue('password')) {
|
||||
callback('两次输入的密码不一样!')
|
||||
callback('两次密码不一致')
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
|
||||
+21
-21
@@ -1,26 +1,26 @@
|
||||
export const ACCESS_TOKEN = 'Access-Token'
|
||||
export const SIDEBAR_TYPE = 'SIDEBAR_TYPE'
|
||||
export const DEFAULT_THEME = 'DEFAULT_THEME'
|
||||
export const DEFAULT_LAYOUT_MODE = 'DEFAULT_LAYOUT_MODE'
|
||||
export const DEFAULT_COLOR = 'DEFAULT_COLOR'
|
||||
export const DEFAULT_COLOR_WEAK = 'DEFAULT_COLOR_WEAK'
|
||||
export const DEFAULT_FIXED_HEADER = 'DEFAULT_FIXED_HEADER'
|
||||
export const DEFAULT_FIXED_SIDEMENU= 'DEFAULT_FIXED_SIDEMENU'
|
||||
export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN'
|
||||
export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE'
|
||||
export const DEFAULT_MULTI_PAGE = 'DEFAULT_MULTI_PAGE'
|
||||
export const USER_NAME = 'Login_Username'
|
||||
export const USER_INFO = 'Login_Userinfo'
|
||||
export const USER_AUTH = 'LOGIN_USER_BUTTON_AUTH'
|
||||
export const SYS_BUTTON_AUTH = 'SYS_BUTTON_AUTH'
|
||||
export const ENCRYPTED_STRING = 'ENCRYPTED_STRING'
|
||||
export const ENHANCE_PRE = 'enhance_'
|
||||
export const UI_CACHE_DB_DICT_DATA = 'UI_CACHE_DB_DICT_DATA'
|
||||
export const ACCESS_TOKEN = 'Income-Management-Access-Token'
|
||||
export const SIDEBAR_TYPE = 'INCOME_MANAGEMENT_SIDEBAR_TYPE'
|
||||
export const DEFAULT_THEME = 'INCOME_MANAGEMENT_DEFAULT_THEME'
|
||||
export const DEFAULT_LAYOUT_MODE = 'INCOME_MANAGEMENT_DEFAULT_LAYOUT_MODE'
|
||||
export const DEFAULT_COLOR = 'INCOME_MANAGEMENT_DEFAULT_COLOR'
|
||||
export const DEFAULT_COLOR_WEAK = 'INCOME_MANAGEMENT_DEFAULT_COLOR_WEAK'
|
||||
export const DEFAULT_FIXED_HEADER = 'INCOME_MANAGEMENT_DEFAULT_FIXED_HEADER'
|
||||
export const DEFAULT_FIXED_SIDEMENU= 'INCOME_MANAGEMENT_DEFAULT_FIXED_SIDEMENU'
|
||||
export const DEFAULT_FIXED_HEADER_HIDDEN = 'INCOME_MANAGEMENT_DEFAULT_FIXED_HEADER_HIDDEN'
|
||||
export const DEFAULT_CONTENT_WIDTH_TYPE = 'INCOME_MANAGEMENT_DEFAULT_CONTENT_WIDTH_TYPE'
|
||||
export const DEFAULT_MULTI_PAGE = 'INCOME_MANAGEMENT_DEFAULT_MULTI_PAGE'
|
||||
export const USER_NAME = 'Income_Management_Login_Username'
|
||||
export const USER_INFO = 'Income_Management_Login_Userinfo'
|
||||
export const USER_AUTH = 'INCOME_MANAGEMENT_LOGIN_USER_BUTTON_AUTH'
|
||||
export const SYS_BUTTON_AUTH = 'INCOME_MANAGEMENT_SYS_BUTTON_AUTH'
|
||||
export const ENCRYPTED_STRING = 'INCOME_MANAGEMENT_ENCRYPTED_STRING'
|
||||
export const ENHANCE_PRE = 'Income_Management_enhance_'
|
||||
export const UI_CACHE_DB_DICT_DATA = 'INCOME_MANAGEMENT_UI_CACHE_DB_DICT_DATA'
|
||||
export const INDEX_MAIN_PAGE_PATH = '/dashboard/analysis'
|
||||
export const TENANT_ID = 'TENANT_ID'
|
||||
export const ONL_AUTH_FIELDS = 'ONL_AUTH_FIELDS'
|
||||
export const TENANT_ID = 'INCOME_MANAGEMENT_TENANT_ID'
|
||||
export const ONL_AUTH_FIELDS = 'INCOME_MANAGEMENT_ONL_AUTH_FIELDS'
|
||||
//路由缓存问题,关闭了tab页时再打开就不刷新 #842
|
||||
export const CACHE_INCLUDED_ROUTES = 'CACHE_INCLUDED_ROUTES'
|
||||
export const CACHE_INCLUDED_ROUTES = 'INCOME_MANAGEMENT_CACHE_INCLUDED_ROUTES'
|
||||
export const CONTENT_WIDTH_TYPE = {
|
||||
Fluid: 'Fluid',
|
||||
Fixed: 'Fixed'
|
||||
|
||||
+20
-2
@@ -81,8 +81,26 @@ export function formatDate(value, fmt) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 代码找出第一个没有下级子菜单的路由
|
||||
* @param data
|
||||
*/
|
||||
function findFirstRoute(data) {
|
||||
if (data[0]) {
|
||||
if (data[0] && data[0].children && data[0].children.length > 0) {
|
||||
return findFirstRoute(data[0].children)
|
||||
} else {
|
||||
return data[0].path
|
||||
}
|
||||
} else {
|
||||
return '/'
|
||||
}
|
||||
}
|
||||
|
||||
// 生成首页路由
|
||||
export function generateIndexRouter(data) {
|
||||
// 对任意页面重定向的地址做改变,
|
||||
const redirectPath = findFirstRoute(data)
|
||||
let indexRouter = [{
|
||||
path: '/',
|
||||
name: 'dashboard',
|
||||
@@ -90,7 +108,8 @@ export function generateIndexRouter(data) {
|
||||
// eslint-disable-next-line
|
||||
component: resolve => require(['@/components/layouts/TabLayout'], resolve),
|
||||
meta: { title: '首页' },
|
||||
redirect: '/dashboard/analysis',
|
||||
// redirect: '/dashboard/analysis',
|
||||
redirect: redirectPath,
|
||||
children: [
|
||||
...generateChildRouters(data)
|
||||
]
|
||||
@@ -141,7 +160,6 @@ function generateChildRouters(data) {
|
||||
// eslint-disable-next-line
|
||||
componentPath = resolve => require(['@/' + component + '.vue'], resolve)
|
||||
// }
|
||||
|
||||
let menu = {
|
||||
path: item.path,
|
||||
name: item.name,
|
||||
|
||||
@@ -189,9 +189,9 @@ export default {
|
||||
methods: {
|
||||
add(limit) {
|
||||
// true 是调用无权限接口
|
||||
if(limit){
|
||||
if (limit) {
|
||||
this.url.add = '/company/payCompanyManagement/addMeeting'
|
||||
}else {
|
||||
} else {
|
||||
this.url.add = '/company/payCompanyManagement/add'
|
||||
}
|
||||
this.edit({})
|
||||
@@ -312,7 +312,7 @@ export default {
|
||||
callback('请输入15位、18位的信用代码')
|
||||
return
|
||||
}
|
||||
if (!this.model.id) {
|
||||
if (this.model.dutyCode !== value) {
|
||||
const params = {
|
||||
confusionCode: 'pay_company_duty_code',
|
||||
fieldVal: value
|
||||
@@ -325,8 +325,9 @@ export default {
|
||||
}
|
||||
})
|
||||
return
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入信用代码')
|
||||
}
|
||||
|
||||
@@ -386,7 +386,7 @@ export default {
|
||||
if (isEmail(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入正确的邮箱')
|
||||
callback('请输入正确格式的邮箱')
|
||||
}
|
||||
}
|
||||
callback('请输入邮箱')
|
||||
|
||||
@@ -0,0 +1,392 @@
|
||||
<template>
|
||||
<div>
|
||||
<page-header-title :is-level-one="false" :img-for-icon="IconImg" level-two-title="支出合同详情"></page-header-title>
|
||||
<a-spin :spinning="loading">
|
||||
<a-card :bordered="false">
|
||||
<!-- 主体信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">主体信息</div>
|
||||
</div>
|
||||
<div class="detail" v-if="mainInfoShowList.length > 0">
|
||||
<div class="detail-item"
|
||||
v-for="(item, index) in mainInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24" v-if="item.fieldName === 'rate'">{{ detailData[item.fieldName] }}%</a-col>
|
||||
<a-col :sm="14" :xs="24" v-else>{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 日期节点-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">日期节点</div>
|
||||
</div>
|
||||
<div class="detail" v-if="dateNodeShowList.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in dateNodeShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 账款信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">账款信息</div>
|
||||
</div>
|
||||
<div class="detail" v-if="accountInfoShowList.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in accountInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 其他信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">其他信息</div>
|
||||
</div>
|
||||
<div class="detail" v-if="otherInfoShowList.length > 0">
|
||||
<div class="detail-item all-line" v-for="(item, index) in otherInfoShowList"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="4" :xs="24" class="detail-item-title">{{ item.title }}:</a-col>
|
||||
<a-col :sm="20" :xs="24">{{ detailData[item.fieldName] }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 分期信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">分期信息</div>
|
||||
</div>
|
||||
<a-row class="detail" v-for="(item, index) in detailData.listInstallment" :key="item.id">
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.phaseName }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段应收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.accountsReceivableTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidAmount }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :xxl="4" :xl="8" :sm="12" class="detail-item">
|
||||
<a-row>
|
||||
<a-col :sm="10" :xs="24" class="detail-item-title">{{ index + 1 }}阶段实收时间:</a-col>
|
||||
<a-col :sm="14" :xs="24">{{ item.paidTime }}</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 存档信息-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">存档信息</div>
|
||||
</div>
|
||||
<div class="detail" v-if="detailData.listArchive && detailData.listArchive.length > 0">
|
||||
<div class="detail-item" v-for="(item, index) in detailData.listArchive"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
|
||||
<!-- 审核记录-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">审核记录</div>
|
||||
</div>
|
||||
<div class="aduit-text" v-if="detailData.listAudit && detailData.listAudit.length > 0">
|
||||
<div v-for="(item, index) in detailData.listAudit"
|
||||
:key="index">
|
||||
<a-row>
|
||||
<a-col :sm="6" :xs="24">{{ item.createBy }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.createTime }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.contractStatus_dictText }}</a-col>
|
||||
<a-col :sm="6" :xs="24">{{ item.explainRemarks }}</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else></a-empty>
|
||||
</div>
|
||||
|
||||
<!-- 状态非已存档显示-->
|
||||
<template v-if="detailData.status < 5">
|
||||
<a-divider></a-divider>
|
||||
<!-- 编辑、审核、存档-->
|
||||
<div>
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">操作</div>
|
||||
</div>
|
||||
<div class="operator-btn">
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleEdit(detailData.id, detailData.contractNum)"
|
||||
v-if="detailData.status === 1 || detailData.status === 4"
|
||||
v-has="'revenueContract:edit'">
|
||||
编辑
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleAudit(detailData.id)"
|
||||
v-if="detailData.status === 2"
|
||||
v-has="'revenueContract:aduit'">
|
||||
审核
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="handleArchive(detailData.id)"
|
||||
v-if="detailData.status === 3"
|
||||
v-has="'revenueContract:archive'">
|
||||
存档
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</a-card>
|
||||
</a-spin>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
|
||||
import IconImg from '@/assets/imgs/icon/icon_revenue_contract.png'
|
||||
import { getExpenditureContractById } from '../../../api/incomePaymentsApi'
|
||||
|
||||
export default {
|
||||
name: 'ExpenditureContractDetail',
|
||||
components: { PageHeaderTitle },
|
||||
data() {
|
||||
return {
|
||||
IconImg,
|
||||
loading: false,
|
||||
detailData: {},
|
||||
// 主体信息
|
||||
mainInfoList: [
|
||||
{
|
||||
fieldName: 'contractNum',
|
||||
title: '合同编号'
|
||||
}, {
|
||||
fieldName: 'contractName',
|
||||
title: '合同名称'
|
||||
}, {
|
||||
fieldName: 'signedCompanyTemporaryName',
|
||||
title: '签订单位'
|
||||
}, {
|
||||
fieldName: 'signedContactsTemporaryName',
|
||||
title: '签订联系人'
|
||||
}, {
|
||||
fieldName: 'opening_dictText',
|
||||
title: '是否开口'
|
||||
}, {
|
||||
fieldName: 'principalName',
|
||||
title: '负责人'
|
||||
}, {
|
||||
fieldName: 'departmentName',
|
||||
title: '部门名称'
|
||||
}, {
|
||||
fieldName: 'contractAmount',
|
||||
title: '签订合同总金额'
|
||||
}, {
|
||||
fieldName: 'rate',
|
||||
title: '税率'
|
||||
}, {
|
||||
fieldName: 'noTaxAmount',
|
||||
title: '未税金额'
|
||||
}
|
||||
],
|
||||
// 日期节点
|
||||
dateNodeList: [
|
||||
{
|
||||
fieldName: 'contractDate',
|
||||
title: '合同签订日期'
|
||||
}, {
|
||||
fieldName: 'terminationDate',
|
||||
title: '合同终止日期'
|
||||
}, {
|
||||
fieldName: 'contractTimePoints',
|
||||
title: '合同约定主要时点'
|
||||
}
|
||||
],
|
||||
// 账款信息
|
||||
accountInfoList: [
|
||||
{
|
||||
fieldName: 'accountsReceivableAmount',
|
||||
title: '应付金额'
|
||||
}, {
|
||||
fieldName: 'amountReceived',
|
||||
title: '已收金额'
|
||||
}, {
|
||||
fieldName: 'amountReceived',
|
||||
title: '未收金额'
|
||||
}, {
|
||||
fieldName: 'accountStatus_dictText',
|
||||
title: '赊账状态'
|
||||
}
|
||||
],
|
||||
// 其他信息
|
||||
otherInfoList: [
|
||||
{
|
||||
fieldName: 'contractPaymentTimes',
|
||||
title: '合同约定付款次数'
|
||||
}
|
||||
// {
|
||||
// fieldName: 'pack_dictText',
|
||||
// title: '是否打包'
|
||||
// }, {
|
||||
// fieldName: 'packYear',
|
||||
// title: '打包年份'
|
||||
// }
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 主体信息,去掉没有数据的字段
|
||||
mainInfoShowList() {
|
||||
return this.mainInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
|
||||
},
|
||||
// 日期节点
|
||||
dateNodeShowList() {
|
||||
return this.dateNodeList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
|
||||
},
|
||||
// 账款信息
|
||||
accountInfoShowList() {
|
||||
return this.accountInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
|
||||
},
|
||||
// 其他信息
|
||||
otherInfoShowList() {
|
||||
return this.otherInfoList.filter(item => this.detailData[item.fieldName] && this.detailData[item.fieldName] !== '') || []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initDetailData(this.$route.query.revenueId)
|
||||
},
|
||||
methods: {
|
||||
initDetailData() {
|
||||
this.loading = true
|
||||
let param = {
|
||||
id: this.$route.query.revenueId
|
||||
}
|
||||
getExpenditureContractById(param).then(res => {
|
||||
if (res.success) {
|
||||
this.detailData = res.result
|
||||
// this.detailData.pack = this.detailData.pack === 1 ? '是' : this.detailData.pack === 0 ? '否' : ''
|
||||
} else {
|
||||
// 添加异常判断,防止消息进入详情无法正常获取数据造成卡死及控制台报错
|
||||
this.$message.warn(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
operatorOk() {
|
||||
this.initDetailData()
|
||||
},
|
||||
/**
|
||||
* 编辑
|
||||
* @param id
|
||||
* @param contractNum
|
||||
*/
|
||||
handleEdit(id, contractNum) {
|
||||
this.$router.push({
|
||||
path: '/contractManagement/RevenueContractModule',
|
||||
query: {
|
||||
revenueId: id
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.detail {
|
||||
display: flex;
|
||||
padding: 0 20px;
|
||||
flex-wrap: wrap;
|
||||
|
||||
&-item {
|
||||
width: 25%;
|
||||
min-width: 280px;
|
||||
padding-top: 10px;
|
||||
color: #2F3133;
|
||||
word-break: break-all;
|
||||
|
||||
&-title {
|
||||
color: #999999;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.all-line {
|
||||
width: 100%!important;
|
||||
}
|
||||
|
||||
.ant-divider-horizontal {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.operator-btn {
|
||||
margin-top: 10px;
|
||||
|
||||
button {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.aduit-text {
|
||||
color: #2F3133;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -75,6 +75,14 @@
|
||||
@change="handleTableChange"
|
||||
class="j-table-force-nowrap">
|
||||
|
||||
<template slot="projectName" slot-scope="text, record">
|
||||
<j-ellipsis
|
||||
class="primary-color"
|
||||
@click="toContractDetail(record.id)"
|
||||
:value="text"
|
||||
:length="18"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
<j-ellipsis :value="text" :length="18"></j-ellipsis>
|
||||
</template>
|
||||
@@ -135,7 +143,7 @@ export default {
|
||||
align: 'center',
|
||||
dataIndex: 'contractNum',
|
||||
width: 280,
|
||||
scopedSlots: { customRender: 'text' }
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
}, {
|
||||
title: '合同名称',
|
||||
align: 'center',
|
||||
@@ -197,6 +205,15 @@ export default {
|
||||
contractId: id
|
||||
}
|
||||
})
|
||||
},
|
||||
toContractDetail(id) {
|
||||
console.log(id)
|
||||
this.$router.push({
|
||||
path: '/contractManagement/ExpenditureContractDetail',
|
||||
query: {
|
||||
revenueId: id
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+47
-35
@@ -75,7 +75,7 @@
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="税率" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-row :gutter="10">
|
||||
<a-col :span="20">
|
||||
<a-input placeholder="请输入税率"
|
||||
v-decorator="['rate',validatorRules.rate]"
|
||||
@@ -104,7 +104,7 @@
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">日期节点</div>
|
||||
</div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同签订日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择合同签订日期"
|
||||
@@ -123,12 +123,15 @@
|
||||
date-format="YYYY-MM-DD"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints',validatorRules.contractTimePoints]"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xxl="12" :xl="16" :sm="24">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
|
||||
<!-- 20211022需求变更将input改为textarea-->
|
||||
<a-textarea placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints',validatorRules.contractTimePoints]"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -141,10 +144,10 @@
|
||||
<div class="part-title-text">账款信息</div>
|
||||
</div>
|
||||
<div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="应收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入应收金额"
|
||||
<a-form-item label="应付金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入应付金额"
|
||||
v-decorator="['accountsReceivableAmount',validatorRules.accountsReceivableAmount]"
|
||||
:maxLength='50'
|
||||
@blur="addZero"
|
||||
@@ -152,8 +155,8 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="已收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入已收金额"
|
||||
<a-form-item label="已付金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入已付金额"
|
||||
v-decorator="['amountReceived',validatorRules.amountReceived]"
|
||||
:maxLength='50'
|
||||
@blur="addZero"
|
||||
@@ -161,8 +164,8 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="未收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入未收金额"
|
||||
<a-form-item label="未付金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入未付金额"
|
||||
:maxLength='50'
|
||||
@blur="addZero"
|
||||
v-decorator="['outstandingAmount']"
|
||||
@@ -189,7 +192,7 @@
|
||||
<div class="part-title-text">其他信息</div>
|
||||
</div>
|
||||
<div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定付款次数" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同约定付款次数"
|
||||
@@ -198,22 +201,23 @@
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="是否打包" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag v-decorator="['pack', validatorRules.pack]"
|
||||
:triggerChange="true"
|
||||
placeholder="请选择是否打包"
|
||||
dictCode="yn"
|
||||
@change="packageChange"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="打包年份" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="isPackage">
|
||||
<j-year-date style="width:100%"
|
||||
placeholder="请选择打包年份"
|
||||
v-decorator="['packYear',validatorRules.packYear]"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- 2021-10-18需求变更去掉-->
|
||||
<!-- <a-col :xxl="6" :xl="8" :sm="12">-->
|
||||
<!-- <a-form-item label="是否打包" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
|
||||
<!-- <j-dict-select-tag v-decorator="['pack', validatorRules.pack]"-->
|
||||
<!-- :triggerChange="true"-->
|
||||
<!-- placeholder="请选择是否打包"-->
|
||||
<!-- dictCode="yn"-->
|
||||
<!-- @change="packageChange"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :xxl="6" :xl="8" :sm="12">-->
|
||||
<!-- <a-form-item label="打包年份" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="isPackage">-->
|
||||
<!-- <j-year-date style="width:100%"-->
|
||||
<!-- placeholder="请选择打包年份"-->
|
||||
<!-- v-decorator="['packYear',validatorRules.packYear]"></j-year-date>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
@@ -224,7 +228,7 @@
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">分期信息</div>
|
||||
</div>
|
||||
<installment-form ref="installmentForm" @ok="installmentFormOk"></installment-form>
|
||||
<installment-form ref="installmentForm" @ok="installmentFormOk" label="付"></installment-form>
|
||||
</div>
|
||||
<!-- /分期信息-->
|
||||
<a-form-item class="table-operator">
|
||||
@@ -278,6 +282,14 @@ export default {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 14 }
|
||||
},
|
||||
longLabelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
longWrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 19 }
|
||||
},
|
||||
validatorRules: {
|
||||
contractNum: {
|
||||
rules: [{ required: true, validator: this.checkContractNum }],
|
||||
@@ -648,13 +660,13 @@ export default {
|
||||
callback('请输入签订合同总金额')
|
||||
break
|
||||
case 'accountsReceivableAmount':
|
||||
callback('请输入应收金额')
|
||||
callback('请输入应付金额')
|
||||
break
|
||||
case 'noTaxAmount':
|
||||
callback('请输入未税金额')
|
||||
break
|
||||
case 'amountReceived':
|
||||
callback('请输入已收金额')
|
||||
callback('请输入已付金额')
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,28 +6,46 @@
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="合同编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同编号" v-model="queryParam.contractNum" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="合同名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同名称" v-model="queryParam.contractName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="关联项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入关联项目" v-model="queryParam.projectName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="合同状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag v-model="queryParam.status" placeholder="请选择合同状态"
|
||||
<j-dict-select-tag v-model="queryParam.status"
|
||||
placeholder="请选择合同状态"
|
||||
dictCode="revenue_contract_status"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="11" :md="12" :sm="24">
|
||||
<!-- 需求变更-->
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="是否打包" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag v-model="queryParam.pack"
|
||||
placeholder="请选择是否打包"
|
||||
dictCode="yn"
|
||||
@input="packageChange"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="8" :lg="9" :md="10" :sm="24">
|
||||
<a-form-item label="打包年份" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="isPackage">
|
||||
<j-year-date style="width:100%"
|
||||
placeholder="请选择打包年份"
|
||||
v-model="queryParam.packYear"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- /需求变更-->
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="创建时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
@@ -88,7 +106,7 @@
|
||||
@change="handleTableChange"
|
||||
class="j-table-force-nowrap">
|
||||
|
||||
<!-- 项目名称 待审核状态为红色-->
|
||||
<!-- 项目名称 -->
|
||||
<template slot="projectName" slot-scope="text, record">
|
||||
<j-ellipsis
|
||||
@click="toRevenueContractDetail(record.id, record.contractNum)"
|
||||
@@ -133,10 +151,11 @@ import RevenueContractAduitModule from './modules/RevenueContractAduitModule'
|
||||
import JDate from '../../../components/tools/JDate'
|
||||
import { RangeDateMixin } from '../../../mixins/RangeDateMixin'
|
||||
import { archiveRevenueContract } from '../../../api/incomePaymentsApi'
|
||||
import JYearDate from '../../../components/jero/JYearDate'
|
||||
|
||||
export default {
|
||||
name: 'RevenueContractList',
|
||||
components: { PageHeaderTitle, RevenueContractAduitModule, JDate },
|
||||
components: { PageHeaderTitle, RevenueContractAduitModule, JDate, JYearDate },
|
||||
mixins: [JeroListMixin, RangeDateMixin],
|
||||
data() {
|
||||
return {
|
||||
@@ -233,12 +252,15 @@ export default {
|
||||
width: 200,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
]
|
||||
],
|
||||
isPackage: false // 是否打包,控制打包年份显隐
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
searchQuery() {
|
||||
this.lastQueryParam = { ...this.queryParam }
|
||||
searchReset() {
|
||||
this.lastQueryParam = {}
|
||||
this.queryParam = {}
|
||||
this.isPackage = false
|
||||
this.loadData(1)
|
||||
},
|
||||
toRevenueContractDetail(id, contractNum) {
|
||||
@@ -314,6 +336,16 @@ export default {
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 打包状态修改
|
||||
*/
|
||||
packageChange(value) {
|
||||
if (value === '1') {
|
||||
this.isPackage = true
|
||||
} else {
|
||||
this.isPackage = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +230,7 @@ export default {
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
postAddress: {
|
||||
rules: [{required: true, message: '请输入邮编'}],
|
||||
rules: [{required: true, message: '请输入邮寄地址'}],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
payMode: {
|
||||
|
||||
@@ -267,7 +267,7 @@ export default {
|
||||
if(value && money(value)){
|
||||
callback()
|
||||
}else {
|
||||
callback('请输入合法的金额数字,最多2位小数,10位正数')
|
||||
callback('应收金额格式错误')
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<div class="part-title">
|
||||
<div class="part-title-text">日期节点</div>
|
||||
</div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同签订日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date placeholder="请选择合同签订日期"
|
||||
@@ -127,12 +127,15 @@
|
||||
date-format="YYYY-MM-DD"/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints']"
|
||||
:maxLength='50'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
|
||||
</a-row>
|
||||
<a-row>
|
||||
<a-col :xxl="12" :xl="16" :sm="24">
|
||||
<a-form-item label="合同约定主要时点" :labelCol="longLabelCol" :wrapperCol="longWrapperCol">
|
||||
<!-- 20211022需求变更将input改为textarea-->
|
||||
<a-textarea placeholder="请输入合同约定主要时点"
|
||||
v-decorator="['contractTimePoints']"
|
||||
:maxLength='200'
|
||||
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-textarea>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -145,7 +148,7 @@
|
||||
<div class="part-title-text">账款信息</div>
|
||||
</div>
|
||||
<div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="应收金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入应收金额"
|
||||
@@ -160,6 +163,7 @@
|
||||
<a-input placeholder="请输入已收金额"
|
||||
v-decorator="['amountReceived',validatorRules.amountReceived]"
|
||||
:maxLength='50'
|
||||
:disabled="true"
|
||||
@blur="addZero"
|
||||
@change="amountReceivedChange"></a-input>
|
||||
</a-form-item>
|
||||
@@ -193,7 +197,7 @@
|
||||
<div class="part-title-text">其他信息</div>
|
||||
</div>
|
||||
<div>
|
||||
<a-row :gutter="30">
|
||||
<a-row>
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="合同约定付款次数" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入合同约定付款次数"
|
||||
@@ -205,7 +209,7 @@
|
||||
<a-col :xxl="6" :xl="8" :sm="12">
|
||||
<a-form-item label="是否打包" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag v-decorator="['pack', validatorRules.pack]"
|
||||
:triggerChange="true"
|
||||
:trigger-change="true"
|
||||
placeholder="请选择是否打包"
|
||||
dictCode="yn"
|
||||
:disabled="isSaved"
|
||||
@@ -258,7 +262,8 @@
|
||||
<a-card :bordered="false" v-else class="associated-project" style="height: 200px"></a-card>
|
||||
|
||||
<!-- 项目类型选择-->
|
||||
<project-type-selection ref="projectTypeSelection" :is-pack="isPackage" @ok="selectProjectTypeOk"></project-type-selection>
|
||||
<project-type-selection ref="projectTypeSelection" :is-pack="isPackage"
|
||||
@ok="selectProjectTypeOk"></project-type-selection>
|
||||
<!-- 普通项目选择-->
|
||||
<select-project-module ref="selectProjectModule"
|
||||
@ok="selectProjectOk"
|
||||
@@ -345,6 +350,14 @@ export default {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 14 }
|
||||
},
|
||||
longLabelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
longWrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 19 }
|
||||
},
|
||||
validatorRules: {
|
||||
contractNum: {
|
||||
rules: [{ required: true, validator: this.checkContractNum }],
|
||||
@@ -437,10 +450,15 @@ export default {
|
||||
add() {
|
||||
this.title = '新建收入合同'
|
||||
this.$refs.installmentForm.initInstallmentList([])
|
||||
// 税率默认为6
|
||||
// 税率默认为6,已收金额默认为0
|
||||
let obj = {
|
||||
rate: 6,
|
||||
amountReceived: '0.00'
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue({ rate: 6 })
|
||||
this.form.setFieldsValue(pick(obj, 'rate', 'amountReceived'))
|
||||
})
|
||||
this.amountReceivedNum = 0
|
||||
this.rateNum = 6 / 100
|
||||
},
|
||||
edit(id) {
|
||||
|
||||
+12
-12
@@ -13,16 +13,16 @@
|
||||
<a-tab-pane key="1" tab="会员项目">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
|
||||
<!-- <a-form-item label="会员项目" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
|
||||
<!-- <a-input placeholder="请输入会员项目" v-model="queryParam.workingGroupProject"></a-input>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="运行年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-year-date placeholder="请选择运行年份" v-model="queryParam.particularYear"></j-year-date>
|
||||
<a-form-item label="会员项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入会员项目" v-model="queryParam.projectName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
|
||||
<!-- <a-form-item label="运行年份" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
|
||||
<!-- <j-year-date placeholder="请选择运行年份" v-model="queryParam.particularYear"></j-year-date>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
@@ -115,7 +115,7 @@
|
||||
<script>
|
||||
import {associatedProject} from '@api/incomePaymentsApi'
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import JYearDate from '@comp/jero/JYearDate'
|
||||
// import JYearDate from '@comp/jero/JYearDate'
|
||||
import StatusSlot from '@comp/tools/StatusSlot'
|
||||
import JEllipsis from '@comp/jero/JEllipsis'
|
||||
import AddMemberProject from '@views/contractManagement/revenueContract/modules/AddMemberProject'
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
name: 'SelectMemberProjectModule',
|
||||
mixins: [JeroListMixin],
|
||||
components: {
|
||||
JYearDate,
|
||||
// JYearDate,
|
||||
StatusSlot,
|
||||
JEllipsis,
|
||||
AddMemberProject
|
||||
@@ -226,21 +226,21 @@ export default {
|
||||
title: '联系人',
|
||||
align: 'center',
|
||||
dataIndex: 'liaisonMan',
|
||||
width: 80,
|
||||
width: 200,
|
||||
scopedSlots: {customRender: 'text'}
|
||||
},
|
||||
{
|
||||
title: '邮箱',
|
||||
align: 'center',
|
||||
dataIndex: 'email',
|
||||
width: 160,
|
||||
width: 200,
|
||||
scopedSlots: {customRender: 'text'},
|
||||
},
|
||||
{
|
||||
title: '手机',
|
||||
align: 'center',
|
||||
dataIndex: 'phone',
|
||||
width: 80,
|
||||
width: 100,
|
||||
scopedSlots: {customRender: 'text'}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -189,7 +189,7 @@ export default {
|
||||
align: 'center',
|
||||
width: 280,
|
||||
dataIndex: 'chargeProject',
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '来款用途',
|
||||
align: 'center',
|
||||
|
||||
+3
-2
@@ -135,11 +135,12 @@ export default {
|
||||
title: '工作组项目',
|
||||
align: 'center',
|
||||
dataIndex: 'workingGroupProject',
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '负责人A',
|
||||
align: 'center',
|
||||
dataIndex: 'principalNameA'
|
||||
dataIndex: 'principalNameA',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '进度',
|
||||
align: 'center',
|
||||
|
||||
@@ -334,10 +334,12 @@ export default {
|
||||
arr = this.dataSource.filter(tt => selectedKeys.indexOf(tt.id) > -1)
|
||||
// 开票
|
||||
if (operateType === 'invoic') {
|
||||
|
||||
// 是否存在不需要发票的项目
|
||||
if (arr.some(item => item.needInvoice === 0 || Number(item.receivableAmount) === 0)) {
|
||||
reject('存在不需要发票的项目!')
|
||||
}
|
||||
|
||||
// 是否存在企业不同的项目
|
||||
let companyArr = []
|
||||
arr.forEach(item => {
|
||||
@@ -347,9 +349,20 @@ export default {
|
||||
if (!isAllEqual(companyArr)) {
|
||||
reject('请选择来款单位为同一企业的项目合并开票!')
|
||||
}
|
||||
|
||||
// 是否存在已完成开票的项目
|
||||
if (arr.some(item => item.makeInvoice === 1)) {
|
||||
reject('存在已完成开票的项目!')
|
||||
}
|
||||
|
||||
// 是否选中了标协会员项目,标协会员项目只能到账一次、开票一次,前端进行是否完全到账的限制
|
||||
if (arr.some(item => item.projectType === 5)) {
|
||||
// 标协会员项目是否完全到账
|
||||
if (arr.some(item => item.inAccount !== 1)) {
|
||||
reject('存在未全部到账的标协会员项目!')
|
||||
}
|
||||
}
|
||||
|
||||
this.selectedCompany = {
|
||||
id: arr[0].chargeCompanyId,
|
||||
companyName: arr[0].chargeCompanyTemporaryName
|
||||
|
||||
@@ -94,6 +94,8 @@
|
||||
<j-area-linkage
|
||||
type="cascader"
|
||||
placeholder="请选择省市"
|
||||
:has-error="hasError"
|
||||
@change="changeConvoke"
|
||||
v-decorator="['convokeLocale',validatorRules.convokeLocale]"
|
||||
></j-area-linkage>
|
||||
</a-form-item>
|
||||
@@ -436,8 +438,10 @@ export default {
|
||||
workGroupList: [],
|
||||
// 收费二维码显示
|
||||
QRcodeBool: true,
|
||||
// 召开地点border颜色控制
|
||||
hasError:false,
|
||||
// 会议类型
|
||||
meetingType:'',
|
||||
meetingType: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -467,7 +471,7 @@ export default {
|
||||
this.edit(res.result)
|
||||
}
|
||||
})
|
||||
}else {
|
||||
} else {
|
||||
// 没有id走新增
|
||||
this.add()
|
||||
}
|
||||
@@ -510,11 +514,11 @@ export default {
|
||||
}
|
||||
console.log(this.model)
|
||||
// 召开时间回显
|
||||
if(this.model.startTime){
|
||||
if (this.model.startTime) {
|
||||
this.model.convokeTime = [moment(this.model.startTime, dateFormat), moment(this.model.endTime, dateFormat)]
|
||||
}
|
||||
// 注册签到时间回显
|
||||
if( this.model.startSignInTime){
|
||||
if (this.model.startSignInTime) {
|
||||
this.model.signInTime = [moment(this.model.startSignInTime, dateFormat), moment(this.model.endSignInTime, dateFormat)]
|
||||
}
|
||||
// 后端需要的召开时间
|
||||
@@ -525,7 +529,7 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
// 加定时器是因为有可能赋值不成功
|
||||
setTimeout(() => {
|
||||
this.form.setFieldsValue(pick(this.model,'notice','paymentQrCode','meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')), 200
|
||||
this.form.setFieldsValue(pick(this.model, 'notice', 'paymentQrCode', 'meetingName', 'meetingType', 'convokeTime', 'particularYear', 'estimatedNumber', 'meetingFiles', 'registerDeadline', 'meetingContent', 'convokeLocale', 'address', 'meetingCosts', 'directorId', 'remark', 'directorPhone')), 200
|
||||
})
|
||||
// 如果是标协会议则回显 标协会议的字段
|
||||
if (this.meetingType === '2') {
|
||||
@@ -550,6 +554,10 @@ export default {
|
||||
handleOk() {
|
||||
const that = this
|
||||
this.form.validateFields((err, values) => {
|
||||
// 这是设置召开时间不选择的边框颜色为红色
|
||||
if (err && Object.prototype.hasOwnProperty.call(err, 'convokeLocale')) {
|
||||
this.hasError = true
|
||||
}
|
||||
if (!err) {
|
||||
that.confirmLoading = true
|
||||
let httpurl = ''
|
||||
@@ -562,7 +570,7 @@ export default {
|
||||
let placeName = values.convokeLocale
|
||||
const formData = Object.assign(this.model, values, {venue: this.getPcaText(placeName)})
|
||||
// 如果会议的费用未为0 不能上传缴费凭证
|
||||
if(values.meetingCosts === '0.00' ){
|
||||
if (values.meetingCosts === '0.00') {
|
||||
delete formData.paymentQrCode
|
||||
}
|
||||
// 添加编辑会议需要增加会议类型
|
||||
@@ -601,6 +609,14 @@ export default {
|
||||
})
|
||||
},
|
||||
/*
|
||||
*
|
||||
* */
|
||||
changeConvoke(val){
|
||||
if(val){
|
||||
this.hasError = false
|
||||
}
|
||||
},
|
||||
/*
|
||||
* 取消
|
||||
* */
|
||||
handleCancel() {
|
||||
@@ -706,33 +722,38 @@ export default {
|
||||
/*
|
||||
* 根据会议类型返回不同的会议新增与编辑接口
|
||||
* */
|
||||
createUrlByMeetingType(meetingType){
|
||||
switch (String(meetingType)){
|
||||
createUrlByMeetingType(meetingType) {
|
||||
switch (String(meetingType)) {
|
||||
// 工作组会议
|
||||
case '1':return {
|
||||
add:'/meeting/workGroupMeeting/add',
|
||||
edit:'/meeting/workGroupMeeting/edit'
|
||||
}
|
||||
case '1':
|
||||
return {
|
||||
add: '/meeting/workGroupMeeting/add',
|
||||
edit: '/meeting/workGroupMeeting/edit'
|
||||
}
|
||||
// 标协会议
|
||||
case '2':return {
|
||||
add:'/meeting/standardsMeeting/add',
|
||||
edit:'/meeting/standardsMeeting/edit'
|
||||
}
|
||||
case '2':
|
||||
return {
|
||||
add: '/meeting/standardsMeeting/add',
|
||||
edit: '/meeting/standardsMeeting/edit'
|
||||
}
|
||||
// 国际研讨会
|
||||
case '3':return {
|
||||
add:'/meeting/internalMeeting/add',
|
||||
edit:'/meeting/internalMeeting/edit'
|
||||
}
|
||||
case '3':
|
||||
return {
|
||||
add: '/meeting/internalMeeting/add',
|
||||
edit: '/meeting/internalMeeting/edit'
|
||||
}
|
||||
// 其他会议
|
||||
case '4':return {
|
||||
add:'/meeting/otherMeeting/add',
|
||||
edit:'/meeting/otherMeeting/edit'
|
||||
}
|
||||
case '4':
|
||||
return {
|
||||
add: '/meeting/otherMeeting/add',
|
||||
edit: '/meeting/otherMeeting/edit'
|
||||
}
|
||||
// 分标委会议
|
||||
case '5':return {
|
||||
add:'/meeting/committeeMeeting/add',
|
||||
edit:'/meeting/committeeMeeting/edit'
|
||||
}
|
||||
case '5':
|
||||
return {
|
||||
add: '/meeting/committeeMeeting/add',
|
||||
edit: '/meeting/committeeMeeting/edit'
|
||||
}
|
||||
}
|
||||
},
|
||||
/*
|
||||
@@ -791,8 +812,8 @@ export default {
|
||||
// 会议费用为 0控制二维码显示隐藏
|
||||
if (value === '0.00') {
|
||||
this.QRcodeBool = false
|
||||
// 如果付款二维码有值 需要清空
|
||||
if(this.form.getFieldValue('paymentQrCode')){
|
||||
// 如果付款二维码有值 需要清空
|
||||
if (this.form.getFieldValue('paymentQrCode')) {
|
||||
this.form.resetFields('paymentQrCode')
|
||||
}
|
||||
} else {
|
||||
@@ -886,6 +907,7 @@ export default {
|
||||
.yuan {
|
||||
position: absolute;
|
||||
right: -40px;
|
||||
top: -10px;
|
||||
}
|
||||
|
||||
.add-icon {
|
||||
|
||||
@@ -253,8 +253,8 @@
|
||||
</template>
|
||||
|
||||
<span slot="action" slot-scope="text, record" class="action-span-cell">
|
||||
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮-->
|
||||
<a @click="handleAudit(record)" v-if="(record.payMode === 1 || record.payMode === 2 ) && record.paymentRecord"
|
||||
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮 审核通过后不显示 审核凭证按钮 -->
|
||||
<a @click="handleAudit(record)" v-if="(record.payMode === 1 || record.payMode === 2 ) && record.paymentRecord && record.checkResult !== 1"
|
||||
v-has:[authorCode.auditRecord]="'attendance:auditCredentials'">审核凭证</a>
|
||||
<!-- 只有工作组会议与分标委会议才有审核报名信息-->
|
||||
<a @click="handleAuditSignUp(record)"
|
||||
@@ -532,6 +532,7 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// console.log(this.$route,'this.$route this.$route')
|
||||
// 为不同会议的参会情况去设置不同的权限编码
|
||||
this.setCodeByMeetingType(this.$route.query.meetingType)
|
||||
// 获取会议详情
|
||||
@@ -540,7 +541,6 @@ export default {
|
||||
}
|
||||
getMeetInfoById(param).then(res => {
|
||||
if (res.success) {
|
||||
console.log(res.result)
|
||||
this.currentMeetingInfo = Object.assign({}, res.result)
|
||||
// 转化会议类型
|
||||
this.meetingType = this.generateMeetingType(this.currentMeetingInfo.meetingType)
|
||||
@@ -831,6 +831,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<!-- 选择嘉宾和内部企业、缴费方式为打包也不显示-->
|
||||
<!-- 会议费为0不显示 -->
|
||||
<template v-if="!meetingCostBool">
|
||||
<div class="item-title" v-if="identifyType === 2 && !payModeBool">缴费信息</div>
|
||||
<div class="item-title" v-if="identifyType === 2">缴费信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="identifyType === 2">
|
||||
<a-form-item label="缴费方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
@@ -46,6 +46,7 @@
|
||||
<j-dict-select-tag style="width: 100%" dict-code="invoice_type"
|
||||
v-decorator="['needInvoice',validatorRules.needInvoice]"
|
||||
:trigger-change="true"
|
||||
@change="changeInvoice"
|
||||
:disabled="isEditBool"
|
||||
placeholder="请选择发票类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
@@ -69,9 +70,9 @@
|
||||
<!-- </a-col>-->
|
||||
</a-row>
|
||||
</template>
|
||||
<!-- 选择嘉宾和内部企业、缴费方式为打包也不显示-->
|
||||
<!-- 其他会议选择嘉宾和内部企业、缴费方式为打包也不显示-->
|
||||
<!-- 会议费为0不显示 -->
|
||||
<template v-if="!meetingCostBool">
|
||||
<template v-if="!meetingCostBool && !needInvoiceBool ">
|
||||
<div class="item-title" v-if="identifyType === 2 && !payModeBool ">邮寄信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="identifyType === 2 && !payModeBool ">
|
||||
@@ -178,7 +179,7 @@ export default {
|
||||
sm: {span: 21}
|
||||
},
|
||||
// 缴费方式为打包
|
||||
payModeBool: false,
|
||||
payModeBool: true,
|
||||
// 缴费方式为线上缴费
|
||||
onlinePayModeBool:false,
|
||||
// 回显的邮寄联系人
|
||||
@@ -203,6 +204,8 @@ export default {
|
||||
},
|
||||
// 是否可编辑
|
||||
isEditBool:false,
|
||||
// 是否需要发票
|
||||
needInvoiceBool:true,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -226,6 +229,13 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 清空邮寄联系人 地址 邮编
|
||||
* */
|
||||
clearFormItem(){
|
||||
// 选择企业清空 姓名 手机号
|
||||
this.form.resetFields(['postContactId','postContactAddress','postCode'])
|
||||
},
|
||||
|
||||
/*
|
||||
* 选择了联系人后给邮寄联系人和地址赋值
|
||||
@@ -280,6 +290,7 @@ export default {
|
||||
* */
|
||||
setFormVal(record) {
|
||||
this.isEditBool = record.checkResult === 1
|
||||
this.needInvoiceBool = record.needInvoice === 0
|
||||
// 回显邮寄联系人
|
||||
this.selectPostPerson = {
|
||||
id: record.postContactTemporaryId,
|
||||
@@ -304,6 +315,17 @@ export default {
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
/*
|
||||
* 选择发票
|
||||
* */
|
||||
changeInvoice(val){
|
||||
if(val === '0'){
|
||||
// 不需要发票
|
||||
this.needInvoiceBool = true
|
||||
}else {
|
||||
this.needInvoiceBool = false
|
||||
}
|
||||
},
|
||||
addContactsOk() {
|
||||
}
|
||||
|
||||
@@ -36,24 +36,27 @@
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">是否住酒店:</label><span>{{ model.checkInHotel_dictText }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<!-- 抵达时间和离开时间 填写了才显示 -->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.arrivalTime">
|
||||
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.departureTime">
|
||||
<label class="label">离开时间:</label><span>{{ model.departureTime }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</template>
|
||||
<!--行程信息end-->
|
||||
|
||||
<!--其他会议的身份选择参会人才显示 缴费信息和邮寄信息 -->
|
||||
<!--缴费信息begin-->
|
||||
<template>
|
||||
<template v-if="model.identity === 2">
|
||||
<div class="item-title">缴费信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">缴费方式:</label><span>{{ model.payMode_dictText }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<!-- 缴费方式为打包的不显示发票 -->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="model.payMode !== 3">
|
||||
<label class="label">需要发票:</label><span>{{ model.needInvoice_dictText }}</span>
|
||||
</a-col>
|
||||
<!-- <a-col :xxl="8" :xl="12" :sm="24">-->
|
||||
@@ -62,9 +65,9 @@
|
||||
</a-row>
|
||||
</template>
|
||||
<!--缴费信息end-->
|
||||
|
||||
<!-- 不需要发票的不显示邮寄信息 -->
|
||||
<!--邮寄信息begin-->
|
||||
<template>
|
||||
<template v-if="model.identity === 2 && model.needInvoice !== 0 ">
|
||||
<div class="item-title">邮寄信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
@@ -89,10 +92,10 @@
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">是否住酒店:</label><span>{{ model.checkInHotel_dictText }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.arrivalTime">
|
||||
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="!!model.departureTime ">
|
||||
<label class="label">离开时间:</label><span>{{ model.departureTime }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -100,13 +103,15 @@
|
||||
<!--行程信息end-->
|
||||
|
||||
<!--缴费信息begin-->
|
||||
<template>
|
||||
<!-- 内部企业显示 -->
|
||||
<template v-if="model.identity !== 3 ">
|
||||
<div class="item-title">缴费信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">缴费方式:</label><span>{{ model.payMode_dictText }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<!-- 国际研讨会打包不显示需要发票-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="model.payMode !== 3 ">
|
||||
<label class="label">需要发票:</label><span>{{ model.needInvoice_dictText }}</span>
|
||||
</a-col>
|
||||
<!-- <a-col :xxl="8" :xl="12" :sm="24">-->
|
||||
@@ -117,7 +122,8 @@
|
||||
<!--缴费信息end-->
|
||||
|
||||
<!--邮寄信息begin-->
|
||||
<template>
|
||||
<!-- 参会人不需要发票不显示 -->
|
||||
<template v-if="model.needInvoice !== 0">
|
||||
<div class="item-title">邮寄信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
@@ -138,19 +144,22 @@
|
||||
<!--演讲信息begin-->
|
||||
<template v-if="model.guestType !== 3">
|
||||
<div class="item-title">演讲信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24" class="info flex-col">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">演讲题目:</label><span>{{ model.speechTopic }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">演讲PPT:</label> <preview-file v-if="model.speechPpt" :file-id="model.speechPpt"></preview-file>
|
||||
<label class="label">演讲PPT:</label>
|
||||
<preview-file v-if="model.speechPpt" :file-id="model.speechPpt"></preview-file>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" style="display: flex" >
|
||||
<label class="label">照片:</label><span><j-image-upload v-if="model.photo" :return-id="true" v-model="model.photo " disabled></j-image-upload></span>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" style="display: flex">
|
||||
<label class="label">照片:</label><span><j-image-upload v-if="model.photo" :return-id="true"
|
||||
v-model="model.photo "
|
||||
disabled></j-image-upload></span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-row :gutter="24" class="info-textarea flex-col">
|
||||
<a-col :xxl="22" :xl="22" :sm="22">
|
||||
<label class="label">个人简介:</label><span>{{ model.profile }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -174,7 +183,7 @@
|
||||
<!--住店信息begin-->
|
||||
<template v-if="model.guestType !== 3">
|
||||
<div class="item-title">住店信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24" class="info flex-col">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">是否住酒店:</label><span>{{ model.checkInHotel_dictText }}</span>
|
||||
</a-col>
|
||||
@@ -196,21 +205,21 @@
|
||||
<!--行程信息begin-->
|
||||
<template>
|
||||
<div class="item-title">行程信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24" class="info flex-col">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">是否需要接站:</label><span>{{ model.pickUp_dictText }}</span>
|
||||
</a-col>
|
||||
<div v-if="model.pickUp === 1">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" >
|
||||
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">到达站:</label><span>{{ model.destination }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">到达班次:</label><span>{{ model.arrivalShift }}</span>
|
||||
</a-col>
|
||||
</div>
|
||||
<div v-if="model.pickUp === 1">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">抵达时间:</label><span>{{ model.arrivalTime }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">到达站:</label><span>{{ model.destination }}</span>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">到达班次:</label><span>{{ model.arrivalShift }}</span>
|
||||
</a-col>
|
||||
</div>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<label class="label">是否需要送站:</label><span>{{ model.deliveryStation_dictText }}</span>
|
||||
</a-col>
|
||||
@@ -229,8 +238,8 @@
|
||||
<label class="label">同行人:</label><span>{{ model.peer }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24" v-if="model.guestType !== 3">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-row :gutter="24" v-if="model.guestType !== 3" class="info-textarea flex-col">
|
||||
<a-col :xxl="22" :xl="22" :sm="22">
|
||||
<label class="label">备注:</label><span>{{ model.remark }}</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -309,6 +318,33 @@ export default {
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.info {
|
||||
.ant-col {
|
||||
span {
|
||||
display: inline-block;
|
||||
word-break: keep-all;
|
||||
white-space: nowrap;
|
||||
max-width: calc(100% - 100px);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//会议内容、备注的样式
|
||||
.info-textarea {
|
||||
display: flex;
|
||||
|
||||
label {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-col {
|
||||
.ant-col {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
.ant-row {
|
||||
line-height: 3;
|
||||
|
||||
|
||||
@@ -242,7 +242,6 @@ export default {
|
||||
if(this.model.id){
|
||||
this.title = '编辑参会人'
|
||||
}
|
||||
console.log(this.model)
|
||||
// 设置编辑的显示隐藏状态
|
||||
this.identifyType = this.model.identity
|
||||
this.guestType = this.model.guestType ? this.model.guestType : null
|
||||
@@ -265,9 +264,16 @@ export default {
|
||||
if(record.payMode === 3){
|
||||
this.$refs.formother.payModeBool = true
|
||||
}
|
||||
// 缴费方式为汇款 需要显示发票字段
|
||||
if(record.payMode === 1){
|
||||
this.$refs.formother.payModeBool = false
|
||||
}
|
||||
|
||||
// 缴费方式为线上的需要回显订单号后四位
|
||||
if(record.payMode === 2){
|
||||
this.$refs.formother.onlinePayModeBool = true
|
||||
// 控制发票是否显示的字段
|
||||
this.$refs.formother.payModeBool = false
|
||||
}
|
||||
this.$refs.formother.setFormVal(this.model)
|
||||
}
|
||||
@@ -377,6 +383,11 @@ export default {
|
||||
* */
|
||||
changeCompany(value) {
|
||||
this.selectedCompany = value
|
||||
// 选择企业清空 姓名 手机号
|
||||
this.form.resetFields(['companyContactId','phone'])
|
||||
if(this.$refs.formother ){
|
||||
this.$refs.formother.clearFormItem()
|
||||
}
|
||||
},
|
||||
/*
|
||||
* 选择联系人获取信息
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
export default {
|
||||
meetingType: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择会议类型!' },
|
||||
{ required: true, message: '请选择会议类型' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
convokeTime: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择召开时间!' },
|
||||
{ required: true, message: '请选择召开时间' },
|
||||
],
|
||||
validateTrigger:['change']
|
||||
},
|
||||
meetingContent:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议内容!' },
|
||||
{ required: true, message: '请输入会议内容' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
registerDeadline:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择报名截止时间!' },
|
||||
{ required: true, message: '请选择报名截止时间' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
convokeLocale: {
|
||||
rules: [
|
||||
{ required: true, message: '请选择省市!' },
|
||||
{ required: true, message: '请选择省市' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
validateTrigger:['change']
|
||||
},
|
||||
address:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入详细地址!' },
|
||||
{ required: true, message: '请输入详细地址' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
@@ -49,43 +49,43 @@ export default {
|
||||
},
|
||||
tbMeetingType:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择标协会议类型!' },
|
||||
{ required: true, message: '请选择标协会议类型' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
signInTime:{
|
||||
rules: [
|
||||
{ required: true, message: '请选择注册签到时间!' },
|
||||
{ required: true, message: '请选择注册签到时间' },
|
||||
],
|
||||
validateTrigger:['change']
|
||||
},
|
||||
meetingCostsVip:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入会议费用!' },
|
||||
{ required: true, message: '请输入会议费用' },
|
||||
],
|
||||
validateTrigger:['blur','change']
|
||||
},
|
||||
hotelName:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店名称!' },
|
||||
{ required: true, message: '请输入酒店名称' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
hotelAddress:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店地址!' },
|
||||
{ required: true, message: '请输入酒店地址' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
contactPerson:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入酒店联系人!' },
|
||||
{ required: true, message: '请输入酒店联系人' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
},
|
||||
telephoneNumber:{
|
||||
rules: [
|
||||
{ required: true, message: '请输入联系人手机号!' },
|
||||
{ required: true, message: '请输入联系人手机号' },
|
||||
],
|
||||
validateTrigger:['blur']
|
||||
}
|
||||
|
||||
@@ -49,15 +49,18 @@
|
||||
<label>需要发票:</label>
|
||||
<span>{{model.needInvoice_dictText}}</span></a-col>
|
||||
</a-row>
|
||||
|
||||
</section>
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24" style="margin-top: 10px">
|
||||
<a-col :span="3">
|
||||
<label>缴费凭证:</label>
|
||||
<label class="color-999">缴费凭证:</label>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-col :span="9">
|
||||
<j-image-upload disabled :return-id="true" v-model="model.paymentRecord"></j-image-upload>
|
||||
</a-col>
|
||||
<!-- 缴费上方式为线上的 显示 -->
|
||||
<a-col :span="12" v-if="model.payMode === 2 ">
|
||||
<label class="color-999">订单后四位:</label>
|
||||
<span class="color-black">{{model.orderCode}}</span></a-col>
|
||||
</a-row>
|
||||
|
||||
<h3>审核</h3>
|
||||
@@ -265,7 +268,7 @@ export default {
|
||||
// 审核结果选择拒绝 审核说明必填
|
||||
if(e.target.value === '1'){
|
||||
this.checkBool = false
|
||||
}else if(e.target.value === '0'){
|
||||
}else if(e.target.value === '2'){
|
||||
this.checkBool = true
|
||||
}
|
||||
},
|
||||
@@ -309,4 +312,11 @@ export default {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
.color-999 {
|
||||
color: #999;
|
||||
}
|
||||
.color-black {
|
||||
color:black;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -87,21 +87,21 @@
|
||||
<!--入住酒店选择是才显示-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="inHotelBool">
|
||||
<a-form-item label="入住酒店时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :disabled="isEditBool" v-decorator="['inHotelTime']" :trigger-change="true" show-type="day"
|
||||
<j-date :disabled="isEditBool" v-decorator="['inHotelTime',validatorRules.inHotelTime]" :trigger-change="true" show-type="day"
|
||||
placeholder="请选择入住酒店时间"></j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="inHotelBool">
|
||||
<a-form-item label="离店时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :disabled="isEditBool" :disabled-date="disabledEndDate" :trigger-change="true" show-type="day"
|
||||
v-decorator="['outHotelTime']" placeholder="请选择离店时间"></j-date>
|
||||
v-decorator="['outHotelTime',validatorRules.outHotelTime]" placeholder="请选择离店时间"></j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="inHotelBool">
|
||||
<a-form-item label="房型" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :disabled="isEditBool" @change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength="50"
|
||||
v-decorator="['roomLayout']"
|
||||
v-decorator="['roomLayout',validatorRules.roomLayout]"
|
||||
placeholder="请输入房型"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -124,7 +124,7 @@
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="pickUpBool">
|
||||
<a-form-item label="抵达时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :disabled="isEditBool" placeholder="请选择抵达时间" style="width: 100%;" v-decorator="['arrivalTime']"
|
||||
<j-date :disabled="isEditBool" placeholder="请选择抵达时间" style="width: 100%;" v-decorator="['arrivalTime',validatorRules.arrivalTime]"
|
||||
:trigger-change="true"
|
||||
show-type="day"
|
||||
date-format="YYYY-MM-DD"/>
|
||||
@@ -135,7 +135,7 @@
|
||||
<a-form-item label="到达站" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :disabled="isEditBool" placeholder="请输入到达站"
|
||||
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
|
||||
v-decorator="[ 'destination']"></a-input>
|
||||
v-decorator="[ 'destination',validatorRules.destination]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
<a-form-item label="到达班次" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :disabled="isEditBool" placeholder="请输入到达班次"
|
||||
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
|
||||
v-decorator="[ 'arrivalShift']"></a-input>
|
||||
v-decorator="[ 'arrivalShift',validatorRules.arrivalShift]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -162,7 +162,7 @@
|
||||
<!--送站选择是才显示-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="sendBool">
|
||||
<a-form-item label="离开时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-date :disabled="isEditBool" placeholder="请选择离开时间" style="width: 100%;" v-decorator="['departureTime']"
|
||||
<j-date :disabled="isEditBool" placeholder="请选择离开时间" style="width: 100%;" v-decorator="['departureTime',validatorRules.departureTime]"
|
||||
:trigger-change="true"
|
||||
show-type="day"
|
||||
date-format="YYYY-MM-DD"/>
|
||||
@@ -173,7 +173,7 @@
|
||||
<a-form-item label="离开站" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :disabled="isEditBool" placeholder="请输入离开站"
|
||||
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
|
||||
v-decorator="[ 'departureStation']"></a-input>
|
||||
v-decorator="[ 'departureStation',validatorRules.departureStation]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
<a-form-item label="离开班次" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input :disabled="isEditBool" placeholder="请输入离开班次"
|
||||
@change="event => event.target.value = event.target.value.trim()" :maxLength="50"
|
||||
v-decorator="[ 'departureShift']"></a-input>
|
||||
v-decorator="[ 'departureShift',validatorRules.departureShift]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -274,14 +274,51 @@ export default {
|
||||
rules: [{ required: true, message: '请选择是否入住酒店' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
inHotelTime:{
|
||||
rules: [{ required: true, message: '请选择入住酒店时间' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
outHotelTime:{
|
||||
rules: [{ required: true, message: '请选择离店时间' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
roomLayout:{
|
||||
rules: [{ required: true, message: '请输入房型' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
pickUp: {
|
||||
rules: [{ required: true, message: '请选择是否接站' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
departureTime:{
|
||||
rules: [{ required: true, message: '请选择离开时间' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
departureStation:{
|
||||
rules: [{ required: true, message: '请输入离开站' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
arrivalShift:{
|
||||
rules: [{ required: true, message: '请输入到达班次' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
deliveryStation: {
|
||||
rules: [{ required: true, message: '请选择是否送站' }],
|
||||
validateTrigger: 'change'
|
||||
}
|
||||
},
|
||||
arrivalTime:{
|
||||
rules: [{ required: true, message: '请选择抵达时间' }],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
destination:{
|
||||
rules: [{ required: true, message: '请输入到达站' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
departureShift:{
|
||||
rules: [{ required: true, message: '请输入离开班次' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,10 +21,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>
|
||||
|
||||
@@ -116,6 +112,10 @@ export default {
|
||||
},
|
||||
handleOk() {
|
||||
const that = this
|
||||
if (this.confirmLoading) {
|
||||
return
|
||||
}
|
||||
this.confirmLoading = true
|
||||
// 触发表单验证
|
||||
this.form.validateFields((err, values) => {
|
||||
if(!err && values.fileIds !== undefined){
|
||||
@@ -127,8 +127,18 @@ export default {
|
||||
if(res.success){
|
||||
that.$message.success(res.message)
|
||||
that.$emit('ok')
|
||||
this.confirmLoading = false
|
||||
that.close()
|
||||
}else {
|
||||
this.$message.warn(res.message)
|
||||
this.confirmLoading = false
|
||||
}
|
||||
}).catch((err) => {
|
||||
console.log(err,'err')
|
||||
}).finally(() => {
|
||||
setTimeout(() => {
|
||||
this.confirmLoading = false
|
||||
}, 1000)
|
||||
})
|
||||
}else {
|
||||
that.close()
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<a-form-item label="收费标准" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入收费标准"
|
||||
:maxLength='50'
|
||||
v-decorator="[ 'chargeStandard']"
|
||||
v-decorator="[ 'chargeStandard',validatorRules.chargeStandard]"
|
||||
@blur="addZero"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"></a-input>
|
||||
<span class="yuan">元</span>
|
||||
@@ -90,6 +90,7 @@ import JYearDate from '@comp/jero/JYearDate'
|
||||
import JUpload from '@comp/jero/JUpload'
|
||||
import SelectPrincipal from '@comp/company/SelectPrincipal'
|
||||
import {addZero} from '@/utils/util'
|
||||
import {money} from '@/utils/validate'
|
||||
|
||||
export default {
|
||||
name: 'MemberProjectModal',
|
||||
@@ -129,6 +130,12 @@ export default {
|
||||
rules: [{required: true, message: '请输入会员项目'}],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
chargeStandard:{
|
||||
rules: [
|
||||
{required: false, validator: this.validateMoney},
|
||||
],
|
||||
validateTrigger: ['blur']
|
||||
},
|
||||
particularYear: {
|
||||
rules: [{required: true, message: '请选择年份'}],
|
||||
validateTrigger: ['change','blur']
|
||||
@@ -196,6 +203,17 @@ export default {
|
||||
handleCancel() {
|
||||
this.close()
|
||||
},
|
||||
validateMoney(rule, value, callback) {
|
||||
if(value){
|
||||
if (value && money(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入合法的金额数字,最多2位小数,10位正数')
|
||||
}
|
||||
}else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -204,5 +222,6 @@ export default {
|
||||
.yuan {
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: -10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
v-decorator="['companyId', validatorRules.companyId]"
|
||||
@change="companyChange"
|
||||
:maxLength="50"
|
||||
:disabled="disabledCompany"
|
||||
>
|
||||
</company-select>
|
||||
</a-form-item>
|
||||
@@ -117,6 +118,7 @@
|
||||
<a-radio-group
|
||||
v-decorator="['paymentMethod', validatorRules.paymentMethod]"
|
||||
@change="changePaymentMethod"
|
||||
:disabled="isAssociatedContract"
|
||||
>
|
||||
<a-radio :value="2">合同</a-radio>
|
||||
<a-radio :value="3">收费通知</a-radio>
|
||||
@@ -134,6 +136,7 @@
|
||||
placeholder="请输入合同号"
|
||||
:maxLength="50"
|
||||
v-decorator="['contractNo', validatorRules.contractNo]"
|
||||
:disabled="isAssociatedContract"
|
||||
@change="
|
||||
(e) => {
|
||||
e.target.value = (e.target.value + '').trim();
|
||||
@@ -173,8 +176,8 @@
|
||||
file-type="pdf"
|
||||
file-type-error-message="请上传收费通知"
|
||||
:multiple="false"
|
||||
:return-id="true"
|
||||
:number="1"
|
||||
bizPath="payment"
|
||||
v-decorator="['chargeNoticeFileId']"
|
||||
:trigger-change="true"
|
||||
></j-upload>
|
||||
@@ -220,6 +223,8 @@ import CompanySelect from '@comp/company/CompanySelect'
|
||||
// import ContactManagementModule from '@views/businessManagement/modules/ContactManagementModule'
|
||||
import SelectContacts from '@comp/company/SelectContacts'
|
||||
import {addZero} from '@/utils/util'
|
||||
import {money} from '@/utils/validate'
|
||||
import {checkAssociatedProject} from '@/utils/projectCheck'
|
||||
|
||||
export default {
|
||||
name: 'SafeguardMemberModal',
|
||||
@@ -276,9 +281,12 @@ export default {
|
||||
initialValue: 3,
|
||||
},
|
||||
amountReceivable: {
|
||||
rules: [{ required: true, message: '请输入应收金额' }],
|
||||
validateTrigger: 'blur',
|
||||
rules: [
|
||||
{required: true, validator: this.validateMoney},
|
||||
],
|
||||
validateTrigger: ['blur']
|
||||
},
|
||||
|
||||
chargeNoticeNo: {
|
||||
rules: [{ required: true, message: '请输入收费通知号' }],
|
||||
validateTrigger: 'blur',
|
||||
@@ -303,6 +311,8 @@ export default {
|
||||
add: '/jero/memberProjectSubitem/add',
|
||||
edit: '/jero/memberProjectSubitem/edit',
|
||||
},
|
||||
disabledCompany: false, // 企业是否可以编辑
|
||||
isAssociatedContract: false, // 是否已关联合同
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -310,12 +320,32 @@ export default {
|
||||
add() {
|
||||
this.edit({})
|
||||
},
|
||||
validateMoney(rule, value, callback) {
|
||||
if (value === undefined || value === '' || value === null) {
|
||||
callback('请输入应收金额')
|
||||
}
|
||||
if (value && money(value)) {
|
||||
callback()
|
||||
} else {
|
||||
callback('请输入合法的金额数字,最多2位小数,10位正数')
|
||||
}
|
||||
},
|
||||
edit(record) {
|
||||
// 清除定时器
|
||||
if (this.timer) {
|
||||
clearTimeout(this.timer)
|
||||
}
|
||||
this.form.resetFields()
|
||||
// 判断企业是否可以编辑,项目来款、开票、邮寄、打包、关联合同后,企业不可更改
|
||||
if (record.id) {
|
||||
// 验证项目是否关联收入合同
|
||||
checkAssociatedProject(record.id).then(res => {
|
||||
this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0)
|
||||
this.isAssociatedContract = res
|
||||
})
|
||||
} else {
|
||||
this.disabledCompany = this.disabledChargeCompany
|
||||
}
|
||||
|
||||
// 如果没有id 就是新增 新增需要将上级的项目收费通知与文件回显
|
||||
let flag = Object.prototype.hasOwnProperty.call(record, 'id')
|
||||
@@ -376,7 +406,10 @@ export default {
|
||||
close() {
|
||||
this.incomePaysType = 3
|
||||
this.$emit('close')
|
||||
this.disabledCompany = false
|
||||
this.isAssociatedContract = false
|
||||
this.visible = false
|
||||
|
||||
clearTimeout(this.timer)
|
||||
},
|
||||
handleOk() {
|
||||
@@ -448,5 +481,6 @@ export default {
|
||||
.yuan {
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: -10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'packCompany:add'">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('打包企业列表')" v-has="'packCompany:export'">导出</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('打包管理')" v-has="'packCompany:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'packCompany:batchDel'">批量删除</a-button>
|
||||
</div>
|
||||
<!-- 操作按钮区域-end-->
|
||||
@@ -54,7 +55,8 @@
|
||||
|
||||
<!-- 项目名称-->
|
||||
<template slot="projectName" slot-scope="text, record">
|
||||
<j-ellipsis :value="text" :length="18" class="primary-color" @click="toProjectMaintenance(record)"></j-ellipsis>
|
||||
<j-ellipsis :value="text" :length="18" class="primary-color"
|
||||
@click="toProjectMaintenance(record)"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -117,12 +119,6 @@ export default {
|
||||
width: 140,
|
||||
dataIndex: 'packYear',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '企业联系人',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
dataIndex: 'companyContactTemporaryName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '打包联系人',
|
||||
align: 'center',
|
||||
@@ -141,6 +137,24 @@ export default {
|
||||
width: 180,
|
||||
dataIndex: 'receiptExpense',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '企业联系人',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
dataIndex: 'companyContactTemporaryName',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '联系人电话',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'phone',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '邮箱',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
dataIndex: 'email',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
|
||||
@@ -184,7 +184,7 @@ export default {
|
||||
title: '打包项目名称',
|
||||
align: 'center',
|
||||
dataIndex: 'chargeProject',
|
||||
scopedSlots: { customRender: 'projectName' }
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '应收金额',
|
||||
align: 'center',
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<!-- 标协会议不显示-->
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24" v-if="$route.query.meetingType === '5' ">
|
||||
<a-form-item label="已提醒" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag style="width: 100%"
|
||||
dict-code="yn"
|
||||
@@ -62,7 +62,8 @@
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" icon="search" @click="searchQuery" v-has:[authorCode.search]="'committeeMeeting:search'">查询</a-button>
|
||||
<a-button type="primary" icon="search" @click="searchQuery"
|
||||
v-has:[authorCode.search]="'committeeMeeting:search'">查询</a-button>
|
||||
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
@@ -73,11 +74,18 @@
|
||||
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has:[authorCode.add]="'committeeMeeting:add'">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('会议维护')" v-has:[authorCode.search]="'committeeMeeting:export'">导出</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has:[authorCode.batchDel]="'committeeMeeting:batchDel'">批量删除</a-button>
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has:[authorCode.add]="'committeeMeeting:add'">新增
|
||||
</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('会议维护')"
|
||||
v-has:[authorCode.search]="'committeeMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel"
|
||||
v-has:[authorCode.batchDel]="'committeeMeeting:batchDel'">批量删除
|
||||
</a-button>
|
||||
<!--只有工作会议与分标委会议才有-->
|
||||
<a-button type="primary" @click="publishRemind" v-if="meetingType === '5' " v-has="'committeeMeeting:publish'">发布</a-button>
|
||||
<a-button type="primary" @click="publishRemind" v-if="meetingType === '5' " v-has="'committeeMeeting:publish'">
|
||||
发布
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- /操作按钮区域-end-->
|
||||
|
||||
@@ -89,7 +97,7 @@
|
||||
bordered
|
||||
rowKey="id"
|
||||
:scroll="{x:true}"
|
||||
:columns="columns"
|
||||
:columns="newColumns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
@@ -98,7 +106,8 @@
|
||||
class="j-table-force-nowrap">
|
||||
|
||||
<template slot="htmlSlot" slot-scope="text,record">
|
||||
<j-ellipsis class="primary-color" @click="toAttendance(record)" v-if="text" :value="text" :length="20"></j-ellipsis>
|
||||
<j-ellipsis class="primary-color" @click="toAttendance(record)" v-if="text" :value="text"
|
||||
:length="20"></j-ellipsis>
|
||||
<span v-else></span>
|
||||
</template>
|
||||
|
||||
@@ -197,7 +206,8 @@ export default {
|
||||
align: 'center',
|
||||
dataIndex: 'startTime',
|
||||
width: 160,
|
||||
customRender: (text, record) => (<j-ellipsis value={record.startTime + '~' + record.endTime} length={20}></j-ellipsis>)
|
||||
customRender: (text, record) => (
|
||||
<j-ellipsis value={record.startTime + '~' + record.endTime} length={20}></j-ellipsis>)
|
||||
},
|
||||
{
|
||||
title: '召开地点',
|
||||
@@ -234,51 +244,51 @@ export default {
|
||||
scopedSlots: {customRender: 'action'}
|
||||
},
|
||||
],
|
||||
newColumns: [],
|
||||
// 权限编码
|
||||
authorCode:{
|
||||
|
||||
},
|
||||
authorCode: {},
|
||||
// 分标委的权限编码
|
||||
committeeMeetingAuthorCode:{
|
||||
add:'committeeMeeting:add',
|
||||
search:'committeeMeeting:search',
|
||||
export:'committeeMeeting:export',
|
||||
batchDel:'committeeMeeting:batchDel',
|
||||
upload:'committeeMeeting:upload',
|
||||
edit:'committeeMeeting:edit',
|
||||
delete:'committeeMeeting:delete'
|
||||
committeeMeetingAuthorCode: {
|
||||
add: 'committeeMeeting:add',
|
||||
search: 'committeeMeeting:search',
|
||||
export: 'committeeMeeting:export',
|
||||
batchDel: 'committeeMeeting:batchDel',
|
||||
upload: 'committeeMeeting:upload',
|
||||
edit: 'committeeMeeting:edit',
|
||||
delete: 'committeeMeeting:delete'
|
||||
},
|
||||
// 标协会议的权限编码
|
||||
standardsMeetingAuthorCode:{
|
||||
add:'standardsMeeting:add',
|
||||
search:'standardsMeeting:search',
|
||||
export:'standardsMeeting:export',
|
||||
batchDel:'standardsMeeting:batchDel',
|
||||
upload:'standardsMeeting:upload',
|
||||
edit:'standardsMeeting:edit',
|
||||
delete:'standardsMeeting:delete'
|
||||
standardsMeetingAuthorCode: {
|
||||
add: 'standardsMeeting:add',
|
||||
search: 'standardsMeeting:search',
|
||||
export: 'standardsMeeting:export',
|
||||
batchDel: 'standardsMeeting:batchDel',
|
||||
upload: 'standardsMeeting:upload',
|
||||
edit: 'standardsMeeting:edit',
|
||||
delete: 'standardsMeeting:delete'
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.filters.meetingType = this.meetingType
|
||||
// 分标委会议需要加上分标委id
|
||||
if(this.meetingType === '5'){
|
||||
if (this.meetingType === '5') {
|
||||
// 在这改变v-has 的值 用分标委的会议权限
|
||||
this.authorCode = Object.assign({},this.committeeMeetingAuthorCode)
|
||||
this.authorCode = Object.assign({}, this.committeeMeetingAuthorCode)
|
||||
this.filters.caseCommitteeId = this.caseCommitteeId
|
||||
}
|
||||
// 如果是标协会议 用标协会议权限
|
||||
if(this.meetingType === '2'){
|
||||
this.authorCode = Object.assign({},this.standardsMeetingAuthorCode)
|
||||
if (this.meetingType === '2') {
|
||||
this.authorCode = Object.assign({}, this.standardsMeetingAuthorCode)
|
||||
}
|
||||
this.loadData(1)
|
||||
// 不是分标委会议去掉提醒字段
|
||||
if (this.meetingType !== 5) {
|
||||
console.log(this.columns)
|
||||
if (this.meetingType !== '5') {
|
||||
this.newColumns = [...this.columns]
|
||||
// 找出提醒字段的索引
|
||||
let index = this.columns.findIndex(item => item.dataIndex === 'remind_dictText')
|
||||
this.columns.splice(index, 1)
|
||||
this.newColumns = this.newColumns.filter(item => item.dataIndex !== 'remind_dictText')
|
||||
} else {
|
||||
this.newColumns = [...this.columns]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -290,23 +300,23 @@ export default {
|
||||
return this.$route.query.meetingType + ''
|
||||
},
|
||||
// 分标委id
|
||||
caseCommitteeId(){
|
||||
caseCommitteeId() {
|
||||
return this.$route.query.id ? this.$route.query.id : undefined
|
||||
},
|
||||
// eslint-disable-next-line
|
||||
url() {
|
||||
let meetingType = this.$route.query.meetingType + ''
|
||||
let meetingType = this.$route.query.meetingType + ''
|
||||
// 标协会议
|
||||
if(meetingType === '2'){
|
||||
if (meetingType === '2') {
|
||||
return {
|
||||
list: '/meeting/standardsMeeting/page',
|
||||
delete: '/meeting/standardsMeeting/delete',
|
||||
deleteBatch: '/meeting/standardsMeeting/deleteBatch',
|
||||
exportXlsUrl: '/meeting/standardsMeeting/exportXls',
|
||||
}
|
||||
}else if(meetingType === '5') {
|
||||
} else if (meetingType === '5') {
|
||||
// 分标委会议
|
||||
return {
|
||||
return {
|
||||
list: '/meeting/committeeMeeting/page',
|
||||
delete: '/meeting/committeeMeeting/delete',
|
||||
deleteBatch: '/meeting/committeeMeeting/deleteBatch',
|
||||
@@ -321,21 +331,21 @@ export default {
|
||||
* */
|
||||
handleAdd() {
|
||||
// 分标委的新增应该是需要分标委的id
|
||||
if(this.meetingType === '5'){
|
||||
if (this.meetingType === '5') {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query: {
|
||||
meetingType:this.meetingType,
|
||||
caseCommitteeId:this.caseCommitteeId
|
||||
meetingType: this.meetingType,
|
||||
caseCommitteeId: this.caseCommitteeId
|
||||
}
|
||||
})
|
||||
}
|
||||
// 标协会议新增
|
||||
if(this.meetingType === '2'){
|
||||
if (this.meetingType === '2') {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query: {
|
||||
meetingType:this.meetingType
|
||||
meetingType: this.meetingType
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -358,13 +368,20 @@ export default {
|
||||
* 参会情况
|
||||
* */
|
||||
toAttendance(record) {
|
||||
const that = this
|
||||
let path = ''
|
||||
let meetingType = this.$route.query.meetingType + ''
|
||||
// 分标委会议与标协会议的跳转
|
||||
if (meetingType === '2') {
|
||||
path = '/incomePayments/meetManage/AttendanceStandardsMeeting'
|
||||
} else if (meetingType === '5') {
|
||||
path = '/incomePayments/meetManage/AttendanceCommitteeMeeting'
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
path: path,
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName,
|
||||
meetingType:that.$route.query.meetingType + ''
|
||||
meetingType: meetingType
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -1,129 +1,130 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="title">
|
||||
<a-icon type="left" :style="{ fontSize: '22px' }" @click="backWorkingGroupProject"></a-icon>
|
||||
<span class="title-text">{{ workingGroupProject }}</span>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<div>
|
||||
<page-header-title :is-level-one="false" :level-two-title="workingGroupProject"></page-header-title>
|
||||
<a-card :bordered="false">
|
||||
<!-- 查询区域-->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="会议时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.meetingStartTime"
|
||||
:disabled-date="disabledStartDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.meetingEndTime"
|
||||
:disabled-date="disabledEndDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-year-date style="width:100%" placeholder="请选择年份"
|
||||
v-model="queryParam.particularYear"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="创建时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.createTime_begin"
|
||||
:disabled-date="disabledStartCreateDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.createTime_end"
|
||||
:disabled-date="disabledEndCreateDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<!-- 查询区域-->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="会议时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.meetingStartTime"
|
||||
:disabled-date="disabledStartDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.meetingEndTime"
|
||||
:disabled-date="disabledEndDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-year-date style="width:100%" placeholder="请选择年份"
|
||||
v-model="queryParam.particularYear"></j-year-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="12" :md="12" :sm="24">
|
||||
<a-form-item label="创建时间">
|
||||
<j-date
|
||||
placeholder="请选择开始日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.createTime_begin"
|
||||
:disabled-date="disabledStartCreateDate">
|
||||
</j-date>
|
||||
<span class="query-group-split-cust"></span>
|
||||
<j-date
|
||||
placeholder="请选择结束日期"
|
||||
class="query-group-cust"
|
||||
v-model="queryParam.createTime_end"
|
||||
:disabled-date="disabledEndCreateDate">
|
||||
</j-date>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="已提醒" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag style="width: 100%"
|
||||
dict-code="yn"
|
||||
v-model="queryParam.remind"
|
||||
placeholder="请选择提醒类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="已提醒" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<j-dict-select-tag style="width: 100%"
|
||||
dict-code="yn"
|
||||
v-model="queryParam.remind"
|
||||
placeholder="请选择提醒类型"></j-dict-select-tag>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" icon="search" @click="searchQuery"
|
||||
v-has="'workGroupMeeting:search'">查询</a-button>
|
||||
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- /查询区域-->
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- /查询区域-->
|
||||
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workGroupMeeting:add'" v-if="canOperate">新增</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议')"
|
||||
v-has="'workGroupMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workGroupMeeting:batchDel'" v-if="canOperate">批量删除</a-button>
|
||||
<a-button type="primary" @click="publishRemind" v-has="'workGroupMeeting:publish'" v-if="canOperate">发布</a-button>
|
||||
</div>
|
||||
<!-- /操作按钮区域-end-->
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workGroupMeeting:add'" v-if="canOperate">新增
|
||||
</a-button>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议')"
|
||||
v-has="'workGroupMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workGroupMeeting:batchDel'" v-if="canOperate">
|
||||
批量删除
|
||||
</a-button>
|
||||
<a-button type="primary" @click="publishRemind" v-has="'workGroupMeeting:publish'" v-if="canOperate">发布
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- /操作按钮区域-end-->
|
||||
|
||||
<!-- table表格区域-->
|
||||
<div>
|
||||
<a-table
|
||||
ref="table"
|
||||
size="middle"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:scroll="{x:true}"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange"
|
||||
class="j-table-force-nowrap">
|
||||
<!-- table表格区域-->
|
||||
<div>
|
||||
<a-table
|
||||
ref="table"
|
||||
size="middle"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:scroll="{x:true}"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
@change="handleTableChange"
|
||||
class="j-table-force-nowrap">
|
||||
|
||||
<!-- 会议名称 点击去参会情况-->
|
||||
<template slot="htmlSlot" slot-scope="text, record">
|
||||
<j-ellipsis v-if="!!text" class="primary-color" :value="text" :length="20"
|
||||
@click="toAttendance(record)"></j-ellipsis>
|
||||
</template>
|
||||
<!-- 会议名称 点击去参会情况-->
|
||||
<template slot="htmlSlot" slot-scope="text, record">
|
||||
<j-ellipsis v-if="!!text" class="primary-color" :value="text" :length="20"
|
||||
@click="toAttendance(record)"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<template slot="text" slot-scope="text">
|
||||
<j-ellipsis :value="text" :length="20"></j-ellipsis>
|
||||
</template>
|
||||
<template slot="text" slot-scope="text">
|
||||
<j-ellipsis :value="text" :length="20"></j-ellipsis>
|
||||
</template>
|
||||
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||
<span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
|
||||
<a @click="uploadFile(record)" v-has="'workGroupMeeting:upload'">上传文件</a>
|
||||
<!-- <a @click="applyMsg">报名信息</a>-->
|
||||
<!-- <a @click="applyMsg">报名信息</a>-->
|
||||
<a @click="handleEdit(record)" v-has="'workGroupMeeting:edit'">编辑</a>
|
||||
<a @click="handleDelete(record.id)" v-has="'workGroupMeeting:delete'">删除</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<publish-remind-modal ref="publishRemindModal" @ok="modalFormOk"></publish-remind-modal>
|
||||
<upload-meet-file-modal ref="modalForm" @ok="modalFormOk"></upload-meet-file-modal>
|
||||
</a-card>
|
||||
</a-table>
|
||||
</div>
|
||||
<publish-remind-modal ref="publishRemindModal" @ok="modalFormOk"></publish-remind-modal>
|
||||
<upload-meet-file-modal ref="modalForm" @ok="modalFormOk"></upload-meet-file-modal>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -136,6 +137,7 @@ import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||
import PublishRemindModal from '@views/projectManagement/modules/PublishRemindModal'
|
||||
import UploadMeetFileModal from '@views/incomePayments/meetManage/modules/UploadMeetFileModal'
|
||||
import '@/assets/less/TableExpand.less'
|
||||
import PageHeaderTitle from '../../components/layouts/PageHeaderTitle'
|
||||
|
||||
export default {
|
||||
name: 'ConferenceMaintenance',
|
||||
@@ -144,7 +146,8 @@ export default {
|
||||
JDate,
|
||||
JDictSelectTag,
|
||||
PublishRemindModal,
|
||||
UploadMeetFileModal
|
||||
UploadMeetFileModal,
|
||||
PageHeaderTitle
|
||||
},
|
||||
mixins: [JeroListMixin, RangeDateMixin],
|
||||
data() {
|
||||
@@ -181,7 +184,7 @@ export default {
|
||||
align: 'center',
|
||||
dataIndex: 'meetingName',
|
||||
scopedSlots: { customRender: 'htmlSlot' },
|
||||
width: 160,
|
||||
width: 160
|
||||
|
||||
},
|
||||
{
|
||||
@@ -240,15 +243,15 @@ export default {
|
||||
fixed: 'right',
|
||||
width: 160,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
},
|
||||
}
|
||||
],
|
||||
url: {
|
||||
list: '/meeting/workGroupMeeting/page',
|
||||
delete: '/meeting/workGroupMeeting/delete',
|
||||
deleteBatch: '/meeting/workGroupMeeting/deleteBatch',
|
||||
exportXlsUrl: '/meeting/workGroupMeeting/exportXls',
|
||||
exportXlsUrl: '/meeting/workGroupMeeting/exportXls'
|
||||
},
|
||||
canOperate: true, // 是否可操作(负责人B不可操作)
|
||||
canOperate: true // 是否可操作(负责人B不可操作)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -277,7 +280,7 @@ export default {
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query: {
|
||||
workingGroupProjectId: currentId,
|
||||
meetingType:'1'
|
||||
meetingType: '1'
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -291,7 +294,7 @@ export default {
|
||||
path: '/incomePayments/meetManage/AddOrDetailMeet',
|
||||
query: {
|
||||
workingGroupProjectId: currentId,
|
||||
id: record.id,
|
||||
id: record.id
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -328,11 +331,11 @@ export default {
|
||||
* */
|
||||
toAttendance(record) {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
path: '/incomePayments/meetManage/AttendanceWorkGroupMeeting',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName,
|
||||
meetingType:'1'
|
||||
meetingType: '1'
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -366,7 +369,7 @@ export default {
|
||||
this.queryParam.createTime_end = this.queryParam.createTime_end ? this.queryParam.createTime_end + ' ' + '23:59:59' : undefined
|
||||
this.lastQueryParam = { ...this.queryParam }
|
||||
this.loadData(1)
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -270,7 +270,7 @@ export default {
|
||||
* */
|
||||
toAttendance(record) {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
path: '/incomePayments/meetManage/AttendanceInternalMeeting',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName,
|
||||
|
||||
@@ -275,7 +275,7 @@ name: 'OtherMeeting',
|
||||
* */
|
||||
toAttendance(record) {
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/Attendance',
|
||||
path: '/incomePayments/meetManage/AttendanceOhterMeeting',
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingName: record.meetingName,
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
<a-row>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="成员单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入成员单位" v-model="queryParam.chargeCompanyTemporaryName" :maxLength='50'></a-input>
|
||||
<a-input placeholder="请输入成员单位" v-model="queryParam.chargeCompanyTemporaryName"
|
||||
:maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
@@ -69,9 +70,12 @@
|
||||
|
||||
<!-- 操作按钮区域-->
|
||||
<div class="table-operator">
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupMember:add'" v-if="canOperate">添加成员</a-button>
|
||||
<a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupMember:add'" v-if="canOperate">
|
||||
添加成员
|
||||
</a-button>
|
||||
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :data="importParam"
|
||||
:action="importExcelUrl" @change="handleImportExcel" v-has="'workingGroupMember:import'" v-if="canOperate">
|
||||
:action="importExcelUrl" @change="handleImportExcel" v-has="'workingGroupMember:import'"
|
||||
v-if="canOperate">
|
||||
<a-button type="primary" icon="import">导入</a-button>
|
||||
</a-upload>
|
||||
<a-button type="primary" icon="export" @click="handleExportXls('工作组成员')" v-has="'workingGroupMember:export'">
|
||||
@@ -80,9 +84,14 @@
|
||||
<a-button type="primary" icon="download" @click="downTemplate('工作组成员导入模板')"
|
||||
v-has="'workingGroupMember:downTemplate'" v-if="canOperate">下载模板
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workingGroupMember:batchDel'" v-if="canOperate">批量删除</a-button>
|
||||
<a-button type="primary" @click="setChargeNotic" v-has="'workingGroupMember:setChargeNotic'" v-if="canOperate">设置收费通知</a-button>
|
||||
<a-button type="primary" @click="setDunningReminder" v-has="'workingGroupMember:setDunningReminder'" v-if="canOperate">催款提醒
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workingGroupMember:batchDel'" v-if="canOperate">
|
||||
批量删除
|
||||
</a-button>
|
||||
<a-button type="primary" @click="setChargeNotic" v-has="'workingGroupMember:setChargeNotic'" v-if="canOperate">
|
||||
设置收费通知
|
||||
</a-button>
|
||||
<a-button type="primary" @click="setDunningReminder" v-has="'workingGroupMember:setDunningReminder'"
|
||||
v-if="canOperate">催款提醒
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- /操作按钮区域-end-->
|
||||
@@ -261,6 +270,13 @@ export default {
|
||||
width: 280,
|
||||
dataIndex: 'contactsTemporaryNameOne',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
// 2021-10-22需求变更新加
|
||||
title: '收费通知号',
|
||||
align: 'center',
|
||||
width: 280,
|
||||
dataIndex: 'chargeNoticeNo',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
}, {
|
||||
title: '应收金额',
|
||||
align: 'center',
|
||||
@@ -322,7 +338,7 @@ export default {
|
||||
// lastQueryParam: {
|
||||
// paymentDate: new Date().getFullYear().toString()
|
||||
// },
|
||||
canOperate: true, // 是否可操作(负责人B不可操作)
|
||||
canOperate: true // 是否可操作(负责人B不可操作)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -469,7 +485,7 @@ export default {
|
||||
// let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}`
|
||||
window.open(url)
|
||||
}
|
||||
},
|
||||
}
|
||||
// 2021 10 11 沟通后去掉了这个功能
|
||||
// searchReset() {
|
||||
// this.lastQueryParam = {
|
||||
|
||||
@@ -197,7 +197,7 @@ export default {
|
||||
// 选择多个会议的时候不需要提醒字段 这样写是因为无法精准定位每一个人对应的每一个会议 这个人是否被提醒
|
||||
if (meetingList.length > 1) {
|
||||
// 去掉列表的提醒字段
|
||||
this.newColumns = this.newColumns.filter(item => item.dataIndex !== 'remind')
|
||||
this.newColumns = this.newColumns.filter(item => item.dataIndex !== 'remind_dictText')
|
||||
}
|
||||
this.searchReset()
|
||||
},
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="本年应收款A" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-row :gutter="10">
|
||||
<a-col :span="20">
|
||||
<a-input placeholder="请输入本年应收款A"
|
||||
v-decorator="['yearChargeA',validatorRules.checkMoney]"
|
||||
@@ -105,7 +105,7 @@
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="本年应收款B" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-row>
|
||||
<a-row :gutter="10">
|
||||
<a-col :span="20">
|
||||
<a-input placeholder="请输入本年应收款B"
|
||||
v-decorator="['yearChargeB',validatorRules.checkMoney]"
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<a-row>
|
||||
<img :src="singUpQRCode" class="qr-code"/>
|
||||
</a-row>
|
||||
<a-button type="primary" style="margin-left: 19px;" @click="toSingUpPage" v-if="!invalidationBool">立即报名
|
||||
<a-button type="primary" style="margin-left: 19px;" @click="toSingUpPage" v-if="!invalidationBool && urlHaveIdBool">立即报名
|
||||
</a-button>
|
||||
</section>
|
||||
</div>
|
||||
@@ -105,12 +105,15 @@ export default {
|
||||
// 会议id
|
||||
meetingId: '',
|
||||
// 当前时间是否超过报名截止时间
|
||||
invalidationBool: false
|
||||
invalidationBool: false,
|
||||
// url是否有id参数
|
||||
urlHaveIdBool:false,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 获取会议id
|
||||
let id = this.GetQueryString('id')
|
||||
this.urlHaveIdBool = id ? true :false
|
||||
this.meetingId = id
|
||||
document.title = '报名入口'
|
||||
if (id) {
|
||||
@@ -179,7 +182,7 @@ export default {
|
||||
this.holdAddress = this.currentMeetingInfo.venue + '/' + this.currentMeetingInfo.address
|
||||
}
|
||||
} else {
|
||||
console.log(res.message)
|
||||
this.urlHaveIdBool = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
+135
-127
@@ -89,128 +89,133 @@
|
||||
<section class="main-content-title mt-10">
|
||||
<img src="../../assets/signUpImg/signUpInfo.png"/> 报名信息
|
||||
</section>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<!--个人信息begin-->
|
||||
<div class="item-title">个人信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="参会企业" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<company-select @change="changeCompany" v-decorator="['companyId',validatorRules.companyId]"
|
||||
placeholder="请选择参会企业"
|
||||
:is-limit="true"
|
||||
:maxLength='50'>
|
||||
</company-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
placeholder="请选择参会人"
|
||||
:is-limit="true"
|
||||
v-decorator="['companyContactId',validatorRules.companyContactId]"
|
||||
:maxLength='50'
|
||||
@change="changeContact"
|
||||
ref="selectMailContacts"
|
||||
@ok="addContactsOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入手机号"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
|
||||
:maxLength='11'
|
||||
disabled
|
||||
v-decorator="['phone',validatorRules.phone]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--非国际研讨会-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType !== '3' ">
|
||||
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['identity',validatorRules.identify]" @change="changeIdentify">
|
||||
<a-radio :value="1">嘉宾</a-radio>
|
||||
<a-radio :value="2">参会人</a-radio>
|
||||
<a-radio :value="3">内部企业</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '3' ">
|
||||
<a-form-item label="是否有邀请码" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['inviteCode',validatorRules.inviteCode]" @change="changeInviteCode">
|
||||
<a-radio :value="1">是</a-radio>
|
||||
<a-radio :value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<template v-if="urlHaveIdBool">
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form :form="form">
|
||||
<!--个人信息begin-->
|
||||
<div class="item-title">个人信息</div>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="参会企业" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<company-select @change="changeCompany" v-decorator="['companyId',validatorRules.companyId]"
|
||||
placeholder="请选择参会企业"
|
||||
:is-limit="true"
|
||||
:maxLength='50'>
|
||||
</company-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-row :gutter="24">
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<select-contacts :selected-company="selectedCompany"
|
||||
placeholder="请选择参会人"
|
||||
:is-limit="true"
|
||||
v-decorator="['companyContactId',validatorRules.companyContactId]"
|
||||
:maxLength='50'
|
||||
@change="changeContact"
|
||||
ref="selectMailContacts"
|
||||
@ok="addContactsOk"></select-contacts>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24">
|
||||
<a-form-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入手机号"
|
||||
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9]/g,'')}"
|
||||
:maxLength='11'
|
||||
disabled
|
||||
v-decorator="['phone',validatorRules.phone]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--非国际研讨会-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType !== '3' ">
|
||||
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['identity',validatorRules.identify]" @change="changeIdentify">
|
||||
<a-radio :value="1">嘉宾</a-radio>
|
||||
<a-radio :value="2">参会人</a-radio>
|
||||
<a-radio :value="3">内部企业</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '3' ">
|
||||
<a-form-item label="是否有邀请码" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['inviteCode',validatorRules.inviteCode]" @change="changeInviteCode">
|
||||
<a-radio :value="1">是</a-radio>
|
||||
<a-radio :value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<!--邀请码选择是出现填写邀请码 否选择身份-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '3' && identityBool ">
|
||||
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['identity',validatorRules.identify]" @change="changeIdentify">
|
||||
<a-radio :value="2">参会人</a-radio>
|
||||
<a-radio :value="3">内部企业</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!--邀请码选择是出现填写邀请码 否选择身份-->
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '3' && identityBool ">
|
||||
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-radio-group v-decorator="['identity',validatorRules.identify]" @change="changeIdentify">
|
||||
<a-radio :value="2">参会人</a-radio>
|
||||
<a-radio :value="3">内部企业</a-radio>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="inviteCodeBool">
|
||||
<a-form-item label="邀请码" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入邀请码"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
@blur="validateCode"
|
||||
v-decorator="[ 'code',
|
||||
<a-col :xxl="8" :xl="12" :sm="24" v-if="inviteCodeBool">
|
||||
<a-form-item label="邀请码" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||
<a-input placeholder="请输入邀请码"
|
||||
:maxLength='50'
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
@blur="validateCode"
|
||||
v-decorator="[ 'code',
|
||||
validatorRules.code]"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!--邀请码选择是才出现-->
|
||||
<a-row :gutter="24" class="center" v-if="inviteCodeBool">
|
||||
<a-button @click="nextSetp" type="primary">下一步</a-button>
|
||||
</a-row>
|
||||
<!--个人信息end-->
|
||||
<!--除开国际研讨会的其他会议的显示-->
|
||||
<template v-if="meetingType !== '3' ">
|
||||
<other-meeting-form ref="formother" :selected-company="selectedCompany"
|
||||
:meeting-cost-bool="meetingCostBool"
|
||||
:identify-type="identifyType" @formData="getFormData" @isPack="isPack"></other-meeting-form>
|
||||
</template>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!--邀请码选择是才出现-->
|
||||
<a-row :gutter="24" class="center" v-if="inviteCodeBool">
|
||||
<a-button @click="nextSetp" type="primary">下一步</a-button>
|
||||
</a-row>
|
||||
<!--个人信息end-->
|
||||
<!--除开国际研讨会的其他会议的显示-->
|
||||
<template v-if="meetingType !== '3' ">
|
||||
<other-meeting-form ref="formother" :selected-company="selectedCompany"
|
||||
:meeting-cost-bool="meetingCostBool"
|
||||
:identify-type="identifyType" @formData="getFormData"
|
||||
@isPack="isPack"></other-meeting-form>
|
||||
</template>
|
||||
|
||||
<!--国际研讨会参会人与内部企业的显示 默认不展示 -->
|
||||
<template v-if="meetingType === '3' && identifyType !== 1 && identifyType !== null ">
|
||||
<other-meeting-form ref="formother" :meeting-type="meetingType" :selected-company="selectedCompany"
|
||||
:meeting-cost-bool="meetingCostBool"
|
||||
@isPack="isPack"
|
||||
:identify-type="identifyType" @formData="getFormData"></other-meeting-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是VIP-->
|
||||
<template v-if="identifyType === 1 && guestType === 1">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData" :identify-type="identifyType"
|
||||
:guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是演讲嘉宾-->
|
||||
<template v-if="identifyType === 1 && guestType === 2">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData" :guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是特邀嘉宾-->
|
||||
<template v-if="identifyType === 1 && guestType === 3">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData" :guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是合作伙伴-->
|
||||
<template v-if="identifyType === 1 && guestType === 4">
|
||||
<seminar-partner-form ref="seminarPartnerForm" @formData="getFormData"></seminar-partner-form>
|
||||
</template>
|
||||
<section class="meetingCost">
|
||||
费用合计:{{ meetingCostSum }} 元
|
||||
</section>
|
||||
<div class="action">
|
||||
<a-button class="submit" type="primary" @click="handleOk" v-preventclick>确定</a-button>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
</div>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
<!--国际研讨会参会人与内部企业的显示 默认不展示 -->
|
||||
<template v-if="meetingType === '3' && identifyType !== 1 && identifyType !== null ">
|
||||
<other-meeting-form ref="formother" :meeting-type="meetingType" :selected-company="selectedCompany"
|
||||
:meeting-cost-bool="meetingCostBool"
|
||||
@isPack="isPack"
|
||||
:identify-type="identifyType" @formData="getFormData"></other-meeting-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是VIP-->
|
||||
<template v-if="identifyType === 1 && guestType === 1">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData" :identify-type="identifyType"
|
||||
:guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是演讲嘉宾-->
|
||||
<template v-if="identifyType === 1 && guestType === 2">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData"
|
||||
:guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是特邀嘉宾-->
|
||||
<template v-if="identifyType === 1 && guestType === 3">
|
||||
<seminar-vip-form ref="seminarVipForm" @formData="getFormData"
|
||||
:guest-type="guestType"></seminar-vip-form>
|
||||
</template>
|
||||
<!-- 国际研讨会身份选择嘉宾 并且是合作伙伴-->
|
||||
<template v-if="identifyType === 1 && guestType === 4">
|
||||
<seminar-partner-form ref="seminarPartnerForm" @formData="getFormData"></seminar-partner-form>
|
||||
</template>
|
||||
<section class="meetingCost">
|
||||
费用合计:{{ meetingCostSum }} 元
|
||||
</section>
|
||||
<div class="action">
|
||||
<a-button class="submit" type="primary" @click="handleOk" v-preventclick>确定</a-button>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
</div>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
</template>
|
||||
</div>
|
||||
</section>
|
||||
<!--内容end-->
|
||||
@@ -323,9 +328,11 @@ export default {
|
||||
// 邀请码错误状态
|
||||
codeErrorBool: true,
|
||||
// 是否是打包
|
||||
isPackBool:false,
|
||||
isPackBool: false,
|
||||
// 国际研讨会身份的控制
|
||||
identityBool:false,
|
||||
identityBool: false,
|
||||
// url是否有id字段 默认没有
|
||||
urlHaveIdBool: false,
|
||||
url: {
|
||||
add: '/meeting/payMeetingSituation/signUp'
|
||||
}
|
||||
@@ -335,6 +342,7 @@ export default {
|
||||
document.title = '会议报名'
|
||||
// 获取会议id
|
||||
let id = this.GetQueryString('id')
|
||||
this.urlHaveIdBool = id ? true : false
|
||||
this.meetingId = id
|
||||
if (id) {
|
||||
this.getMeetingInfo(id)
|
||||
@@ -395,7 +403,7 @@ export default {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log(res.message)
|
||||
this.urlHaveIdBool = false
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -431,11 +439,11 @@ export default {
|
||||
return null
|
||||
},
|
||||
// 是否打包 打包会议费用为0
|
||||
isPack(val){
|
||||
isPack(val) {
|
||||
this.isPackBool = val
|
||||
if(this.isPackBool){
|
||||
if (this.isPackBool) {
|
||||
this.meetingCostSum = '0.00'
|
||||
}else {
|
||||
} else {
|
||||
this.meetingCostSum = this.currentMeetingInfo.meetingCosts
|
||||
}
|
||||
},
|
||||
@@ -462,7 +470,7 @@ export default {
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
// 判断邀请码是否错误 需要判断会议类型 以及 是否有邀请码
|
||||
if (this.codeErrorBool && this.currentMeetingInfo.meetingType === '3' && this.inviteCodeBool ) {
|
||||
if (this.codeErrorBool && this.currentMeetingInfo.meetingType === '3' && this.inviteCodeBool) {
|
||||
this.$message.error('邀请码填写错误')
|
||||
return
|
||||
}
|
||||
@@ -523,7 +531,7 @@ export default {
|
||||
changeCompany(value) {
|
||||
this.selectedCompany = value
|
||||
// 选择企业清空 姓名 手机号
|
||||
this.form.resetFields(['companyContactId','phone'])
|
||||
this.form.resetFields(['companyContactId', 'phone'])
|
||||
|
||||
},
|
||||
/*
|
||||
@@ -558,7 +566,7 @@ export default {
|
||||
// 选的否 身份置空
|
||||
this.identifyType = null
|
||||
this.$nextTick(() => {
|
||||
if(this.$refs.formother){
|
||||
if (this.$refs.formother) {
|
||||
this.$refs.formother.isLimitBool = true
|
||||
}
|
||||
})
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
<a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">取消选择</a>
|
||||
</div>
|
||||
</a-alert>
|
||||
<a-input-search @search="onSearch" allowClear style="width:100%;margin-top: 10px" placeholder="请输入部门名称" :maxLength="50"/>
|
||||
<a-input-search @search="onSearch" allowClear style="width:100%;margin-top: 10px" placeholder="请输入部门名称"
|
||||
:maxLength="50"/>
|
||||
<!-- 树-->
|
||||
<a-col :md="10" :sm="24">
|
||||
<template>
|
||||
@@ -504,7 +505,7 @@ export default {
|
||||
this.form.resetFields()
|
||||
this.selectedKeys = []
|
||||
//取消选择 清除选中部门id
|
||||
this.$refs.DeptUserInfo.cancelSelect()
|
||||
// this.$refs.DeptUserInfo.cancelSelect()
|
||||
// 暂时注释(部门权限组件)没用 2021-08-24
|
||||
// this.$refs.departAuth.departId = ''
|
||||
},
|
||||
@@ -736,4 +737,11 @@ export default {
|
||||
background: #fff;
|
||||
border-radius: 0 0 2px 2px;
|
||||
}
|
||||
|
||||
//解决组织机构名称很长的时候文字无法隐藏的问题
|
||||
/deep/ .ant-tree li .ant-tree-node-content-wrapper {
|
||||
max-width: 235%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -9,8 +9,15 @@
|
||||
|
||||
<a-col :xl="7" :lg="8" :md="8" :sm="24">
|
||||
<a-form-item label="提醒类型">
|
||||
<j-dict-select-tag dict-code="notice_type" placeholder="请选择提醒类型"
|
||||
v-model="queryParam.titile"></j-dict-select-tag>
|
||||
<a-select
|
||||
v-model="queryParam.titile"
|
||||
show-search
|
||||
allowClear
|
||||
option-filter-prop="children"
|
||||
:filter-option="filterOption"
|
||||
placeholder="请选择提醒类型">
|
||||
<a-select-option v-for="(item,index) in noticeTypeList" :key="index" :value="item.value">{{ item.name }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="10" :lg="11" :md="12" :sm="24">
|
||||
@@ -47,6 +54,7 @@
|
||||
size="default"
|
||||
bordered
|
||||
rowKey="id"
|
||||
:scroll="{x: 1200}"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="ipagination"
|
||||
@@ -85,7 +93,6 @@ import ShowAnnouncement from '@/components/tools/ShowAnnouncement'
|
||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||
import {RangeDateMixin} from '@/mixins/RangeDateMixin'
|
||||
import DynamicNotice from '../../components/tools/DynamicNotice'
|
||||
import JDictSelectTag from '@comp/dict/JDictSelectTag'
|
||||
import '@/assets/less/TableExpand.less'
|
||||
import JDate from '@comp/tools/JDate'
|
||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||
@@ -98,7 +105,6 @@ export default {
|
||||
components: {
|
||||
DynamicNotice,
|
||||
ShowAnnouncement,
|
||||
JDictSelectTag,
|
||||
JDate,
|
||||
PageHeaderTitle
|
||||
},
|
||||
@@ -106,6 +112,29 @@ export default {
|
||||
return {
|
||||
description: '系统通告表管理页面',
|
||||
queryParam: {},
|
||||
// 管理端消息提醒类型
|
||||
noticeTypeList: [
|
||||
{
|
||||
name: '项目通知',
|
||||
value: '1'
|
||||
},
|
||||
{
|
||||
name: '合同通知',
|
||||
value: '2'
|
||||
},
|
||||
{
|
||||
name: '会议通知',
|
||||
value: '3'
|
||||
},
|
||||
{
|
||||
name: '打包通知',
|
||||
value: '4'
|
||||
},
|
||||
{
|
||||
name: '企业通知',
|
||||
value: '5'
|
||||
}
|
||||
],
|
||||
IconImg,
|
||||
columns: [
|
||||
{
|
||||
@@ -169,6 +198,11 @@ export default {
|
||||
Bus.$off('header-notice-change')
|
||||
},
|
||||
methods: {
|
||||
filterOption(input, option) {
|
||||
return (
|
||||
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
)
|
||||
},
|
||||
handleDetail: function (record) {
|
||||
this.$refs.sysAnnouncementModal.detail(record)
|
||||
this.$refs.sysAnnouncementModal.title = '查看'
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
if(value){
|
||||
let reg=new RegExp("[`_~!@#$^&*()=|{}'.<>《》/?!¥()—【】‘;:”“。,、?]")
|
||||
if(reg.test(value)){
|
||||
callback('数据值不能包含特殊字符!')
|
||||
callback('数据值不能包含特殊字符')
|
||||
}else{
|
||||
//update--begin--autor:lvdandan-----date:20201203------for:JT-27【数据字典】字典 - 数据值可重复
|
||||
getAction('/sys/dictItem/dictItemCheck',param).then((res)=>{
|
||||
|
||||
@@ -597,7 +597,7 @@ export default {
|
||||
callback()
|
||||
}
|
||||
if (!passwordReg(value)) {
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成')
|
||||
}
|
||||
if (value && this.confirmDirty) {
|
||||
form.validateFields(['confirm'], {force: true})
|
||||
@@ -607,10 +607,10 @@ export default {
|
||||
compareToFirstPassword(rule, value, callback) {
|
||||
const form = this.form
|
||||
if (value && value !== form.getFieldValue('password')) {
|
||||
callback('两次输入的密码不一样!')
|
||||
callback('两次密码不一致')
|
||||
}
|
||||
if (value && !passwordReg(value)) {
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
|
||||
callback('密码由8位及以上数字、大小写字母和特殊符号组成')
|
||||
}
|
||||
callback()
|
||||
},
|
||||
|
||||
@@ -81,11 +81,12 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onTreeNodeSelect(id){
|
||||
if(id && id.length>0){
|
||||
this.selectedKeys = id
|
||||
}
|
||||
this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
|
||||
onTreeNodeSelect(){
|
||||
// id
|
||||
// if(id && id.length>0){
|
||||
// this.selectedKeys = id
|
||||
// }
|
||||
// this.$refs.datarule.show(this.selectedKeys[0],this.roleId)
|
||||
},
|
||||
onCheck (o) {
|
||||
if(this.checkStrictly){
|
||||
|
||||
@@ -326,7 +326,7 @@ export default {
|
||||
z-index: 99;
|
||||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
height: 60%;
|
||||
height: 80%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
@@ -336,11 +336,12 @@ export default {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
.title{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-bottom: 10px;
|
||||
img{
|
||||
width: 395px;
|
||||
height: 124px;
|
||||
@@ -366,7 +367,7 @@ export default {
|
||||
}
|
||||
}
|
||||
/deep/.ant-row{
|
||||
margin-bottom: 0 !important;
|
||||
margin-bottom: 4px!important;
|
||||
}
|
||||
/deep/.ant-input-affix-wrapper .ant-input{
|
||||
border-radius: 30px;
|
||||
|
||||
@@ -129,35 +129,35 @@ export default {
|
||||
validatorRules: {
|
||||
username: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入账号!' }],
|
||||
{ required: true, message: '请输入账号' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
phone: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入手机号!' },
|
||||
{ required: true, message: '请输入手机号' },
|
||||
{ validator: this.validatePhone }
|
||||
],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
verifyCode: {
|
||||
rules: [{ required: true, message: '请输入验证码!' }],
|
||||
rules: [{ required: true, message: '请输入验证码' }],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
password: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入新密码!' },
|
||||
{ required: true, message: '请输入新密码' },
|
||||
{
|
||||
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成'
|
||||
}
|
||||
],
|
||||
validateTrigger: 'blur'
|
||||
},
|
||||
confirmPassword: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入确认密码!' },
|
||||
{ required: true, message: '请输入确认密码' },
|
||||
{ pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
|
||||
message: '密码由8位及以上数字、大小写字母和特殊符号组成'
|
||||
},
|
||||
{ validator: this.handlePasswordCheck }
|
||||
],
|
||||
@@ -315,7 +315,7 @@ export default {
|
||||
}
|
||||
|
||||
.alteration-content {
|
||||
margin: auto;
|
||||
//margin: auto;
|
||||
width: 1000px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
Reference in New Issue
Block a user