diff --git a/public/development_address_config.js b/public/development_address_config.js index 37d2ed3..6425b04 100644 --- a/public/development_address_config.js +++ b/public/development_address_config.js @@ -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' diff --git a/src/components/ProgressBar.vue b/src/components/ProgressBar.vue index f6b7036..973a550 100644 --- a/src/components/ProgressBar.vue +++ b/src/components/ProgressBar.vue @@ -1,24 +1,28 @@ @@ -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 { diff --git a/src/components/company/CompanySelect.vue b/src/components/company/CompanySelect.vue index 56557d1..0747a71 100644 --- a/src/components/company/CompanySelect.vue +++ b/src/components/company/CompanySelect.vue @@ -2,7 +2,7 @@
- + diff --git a/src/components/company/SelectPrincipal.vue b/src/components/company/SelectPrincipal.vue index 5f2d841..7a68338 100644 --- a/src/components/company/SelectPrincipal.vue +++ b/src/components/company/SelectPrincipal.vue @@ -6,7 +6,9 @@ allowClear option-filter-prop="children" :filter-option="filterOption"> - {{ `${item.realname}(${item.orgCodeTxt})` }} + + {{ `${ item.realname }(${ item.orgCodeTxt })` }} + @@ -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 ) } }, diff --git a/src/components/form/InstallmentForm.vue b/src/components/form/InstallmentForm.vue index 491bf9f..cf9bfba 100644 --- a/src/components/form/InstallmentForm.vue +++ b/src/components/form/InstallmentForm.vue @@ -12,7 +12,7 @@ - + - - + - + - - +
Bad type value: {{_type}} @@ -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; //} diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue index b54e528..7be1037 100644 --- a/src/components/layouts/TabLayout.vue +++ b/src/components/layouts/TabLayout.vue @@ -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 diff --git a/src/components/layouts/UserLayout.vue b/src/components/layouts/UserLayout.vue index 1a610a4..5b0d061 100644 --- a/src/components/layouts/UserLayout.vue +++ b/src/components/layouts/UserLayout.vue @@ -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; diff --git a/src/components/page/GlobalLayout.vue b/src/components/page/GlobalLayout.vue index 2e10259..7be2bc2 100644 --- a/src/components/page/GlobalLayout.vue +++ b/src/components/page/GlobalLayout.vue @@ -356,7 +356,7 @@ body { } .anticon { - color: inherit; + color: #FFFFFF; } } } diff --git a/src/components/tools/DynamicNotice.vue b/src/components/tools/DynamicNotice.vue index 7539a02..95483ce 100644 --- a/src/components/tools/DynamicNotice.vue +++ b/src/components/tools/DynamicNotice.vue @@ -7,35 +7,39 @@ \ No newline at end of file diff --git a/src/components/tools/UserPassword.vue b/src/components/tools/UserPassword.vue index a320a65..b80d0fa 100644 --- a/src/components/tools/UserPassword.vue +++ b/src/components/tools/UserPassword.vue @@ -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() } diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js index f58bdd9..7b1972f 100644 --- a/src/store/mutation-types.js +++ b/src/store/mutation-types.js @@ -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' diff --git a/src/utils/util.js b/src/utils/util.js index c7c2673..9313aaa 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -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, diff --git a/src/views/businessManagement/modules/BusinessManagementModule.vue b/src/views/businessManagement/modules/BusinessManagementModule.vue index 9f6565a..5dd6f24 100644 --- a/src/views/businessManagement/modules/BusinessManagementModule.vue +++ b/src/views/businessManagement/modules/BusinessManagementModule.vue @@ -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('请输入信用代码') } diff --git a/src/views/businessManagement/modules/ContactManagementModule.vue b/src/views/businessManagement/modules/ContactManagementModule.vue index 54f8095..d0cdda1 100644 --- a/src/views/businessManagement/modules/ContactManagementModule.vue +++ b/src/views/businessManagement/modules/ContactManagementModule.vue @@ -386,7 +386,7 @@ export default { if (isEmail(value)) { callback() } else { - callback('请输入正确的邮箱') + callback('请输入正确格式的邮箱') } } callback('请输入邮箱') diff --git a/src/views/contractManagement/expenditureContract/ExpenditureContractDetail.vue b/src/views/contractManagement/expenditureContract/ExpenditureContractDetail.vue new file mode 100644 index 0000000..7d89eee --- /dev/null +++ b/src/views/contractManagement/expenditureContract/ExpenditureContractDetail.vue @@ -0,0 +1,392 @@ + + + + + \ No newline at end of file diff --git a/src/views/contractManagement/expenditureContract/ExpenditureContractList.vue b/src/views/contractManagement/expenditureContract/ExpenditureContractList.vue index 0e3dbe8..cc633cf 100644 --- a/src/views/contractManagement/expenditureContract/ExpenditureContractList.vue +++ b/src/views/contractManagement/expenditureContract/ExpenditureContractList.vue @@ -75,6 +75,14 @@ @change="handleTableChange" class="j-table-force-nowrap"> + + @@ -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 + } + }) } } } diff --git a/src/views/contractManagement/expenditureContract/modules/ExpenditureContractModule.vue b/src/views/contractManagement/expenditureContract/modules/ExpenditureContractModule.vue index 0568089..968dd8b 100644 --- a/src/views/contractManagement/expenditureContract/modules/ExpenditureContractModule.vue +++ b/src/views/contractManagement/expenditureContract/modules/ExpenditureContractModule.vue @@ -75,7 +75,7 @@ - +
日期节点
- + - - - + + + + + + @@ -141,10 +144,10 @@
账款信息
- + - - + - - + - - + 其他信息
- + - - - - - - - - - - + + + + + + + + + + + + + + + + +
@@ -224,7 +228,7 @@
分期信息
- + @@ -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 } } diff --git a/src/views/contractManagement/revenueContract/RevenueContractList.vue b/src/views/contractManagement/revenueContract/RevenueContractList.vue index 398d655..813c8b7 100644 --- a/src/views/contractManagement/revenueContract/RevenueContractList.vue +++ b/src/views/contractManagement/revenueContract/RevenueContractList.vue @@ -6,28 +6,46 @@
- + - + - + - + - - + + + + + + + + + + + + + - +