权限、统计接口、默认密码登录

This commit is contained in:
zhaoxiao
2021-09-23 18:32:01 +08:00
parent de97364b92
commit e13418046b
49 changed files with 989 additions and 530 deletions
+4 -1
View File
@@ -62,6 +62,8 @@ const distributeMemberList = (param) => getAction('/project/payWorkingGroupDistr
const dunningReminder = (param) => postAction('/project/payWorkingGroupSubitem/reminders', param) const dunningReminder = (param) => postAction('/project/payWorkingGroupSubitem/reminders', param)
// 复制工作组 // 复制工作组
const copyWorkingGroup = (param) => postAction('/project/payWorkingGroup/copy', param) const copyWorkingGroup = (param) => postAction('/project/payWorkingGroup/copy', param)
// 校验登陆人是否可以操作工作组
const checkoutWorkingGroupPrincipal = (param) => getAction('/project/payWorkingGroup/checkoutOperation', param)
export { export {
getWorkingGroupById, getWorkingGroupById,
@@ -94,5 +96,6 @@ export {
batchDistribute, batchDistribute,
distributeMemberList, distributeMemberList,
dunningReminder, dunningReminder,
copyWorkingGroup copyWorkingGroup,
checkoutWorkingGroupPrincipal
} }
+11 -4
View File
@@ -4,7 +4,7 @@
<a-col :span="20"> <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"></a-input>
</a-col> </a-col>
<a-col :span="4" class="form-btn"> <a-col :span="4" class="form-btn" v-if="canAdd">
<a-button icon="plus" @click="addCompany"></a-button> <a-button icon="plus" @click="addCompany"></a-button>
</a-col> </a-col>
</a-row> </a-row>
@@ -38,6 +38,12 @@ export default {
valueKey: { valueKey: {
type: String, type: String,
default: 'companyName' default: 'companyName'
},
// 是否可以新增:true--可以;false--不可以(组件作为查询条件时不可新增)
canAdd: {
type: Boolean,
required: false,
default: true
} }
}, },
methods: { methods: {
@@ -75,9 +81,9 @@ export default {
* @param value * @param value
*/ */
addCompanyOk(value) { addCompanyOk(value) {
let {id, companyName} = value let { id, companyName } = value
console.log({id, companyName}) console.log({ id, companyName })
this.$emit('change', {id, companyName}) this.$emit('change', { id, companyName })
} }
}, },
//2.2新增 在组件内定义 指定父组件调用时候的传值属性和事件类型 //2.2新增 在组件内定义 指定父组件调用时候的传值属性和事件类型
@@ -89,6 +95,7 @@ export default {
</script> </script>
<style scoped> <style scoped>
a-input:hover { a-input:hover {
cursor: pointer; cursor: pointer;
} }
+1
View File
@@ -69,6 +69,7 @@ const user = {
Login({ commit }, userInfo) { Login({ commit }, userInfo) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
login(userInfo).then(response => { login(userInfo).then(response => {
console.log(response, '================')
if(response.code =='200'){ if(response.code =='200'){
const result = response.result const result = response.result
const userInfo = result.userInfo const userInfo = result.userInfo
@@ -18,7 +18,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'company:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -29,14 +29,14 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'company:add'">新增</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel"> @change="handleImportExcel" v-has="'company:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="export" @click="handleExportXls('企业管理')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('企业管理')" v-has="'company:export'">导出</a-button>
<a-button type="primary" icon="download" @click="downTemplate('企业管理导入模板')">下载模板</a-button> <a-button type="primary" icon="download" @click="downTemplate('企业管理导入模板')" v-has="'company:downTemplate'">下载模板</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'company:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -61,9 +61,9 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleAudit(record.id)" v-if="record.dataSource===2 && record.status===2">确认</a> <a @click="handleAudit(record.id)" v-if="record.dataSource===2 && record.status===2" v-has="'company:confirm'">确认</a>
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'company:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'company:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -23,7 +23,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'contact:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -34,14 +34,14 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'contact:add'">新增</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel"> @change="handleImportExcel" v-has="'contact:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="export" @click="handleExportXls('联系人管理')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('联系人管理')" v-has="'contact:export'">导出</a-button>
<a-button type="primary" icon="download" @click="downTemplate('联系人管理导入模板')">下载模板</a-button> <a-button type="primary" icon="download" @click="downTemplate('联系人管理导入模板')" v-has="'contact:downTemplate'">下载模板</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'contact:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -66,8 +66,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'contact:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'contact:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -37,7 +37,7 @@
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'expenditureContract:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -48,14 +48,14 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'expenditureContract:add'">新增</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel"> @change="handleImportExcel" v-has="'expenditureContract:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="export" @click="handleExportXls('支出合同')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('支出合同')" v-has="'expenditureContract:export'">导出</a-button>
<a-button type="primary" icon="download" @click="downTemplate('支出合同导入模板')">下载模板</a-button> <a-button type="primary" icon="download" @click="downTemplate('支出合同导入模板')" v-has="'expenditureContract:downTemplate'">下载模板</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'expenditureContract:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -80,8 +80,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record.id)">编辑</a> <a @click="handleEdit(record.id)" v-has="'expenditureContract:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'expenditureContract:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -322,6 +322,10 @@ export default {
pack: { pack: {
rules: [{ required: true, message: '请选择是否打包' }], rules: [{ required: true, message: '请选择是否打包' }],
validateTrigger: 'change' validateTrigger: 'change'
},
packYear: {
rules: [{ required: true, message: '请选择打包年份' }],
validateTrigger: 'change'
} }
}, },
url: { url: {
@@ -53,7 +53,7 @@
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'revenueContract:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -64,9 +64,9 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'revenueContract:add'">新增</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('收入合同')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('收入合同')" v-has="'revenueContract:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'revenueContract:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -107,12 +107,13 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleAudit(record.id)" v-if="record.status === 2">审核</a> <a @click="handleAudit(record.id)" v-if="record.status === 2" v-has="'revenueContract:aduit'">审核</a>
<!-- v-has="'revenueContract:edit'"-->
<a @click="handleEdit(record.id, record.contractNum)" <a @click="handleEdit(record.id, record.contractNum)"
v-if="record.status === 1 || record.status === 4">编辑</a> v-if="record.status === 1 || record.status === 4">编辑</a>
<a @click="handleArchive(record.id)" v-if="record.status === 3">存档</a> <a @click="handleArchive(record.id)" v-if="record.status === 3" v-has="'revenueContract:archive'">存档</a>
<a @click="handleDelete(record.id)" <a @click="handleDelete(record.id)"
v-if="record.status === 1 || record.status === 2 || record.status === 4">删除</a> v-if="record.status === 1 || record.status === 2 || record.status === 4" v-has="'revenueContract:delete'">删除</a>
<a :disabled="true" v-if="record.status === 5">已存档</a> <a :disabled="true" v-if="record.status === 5">已存档</a>
</span> </span>
</a-table> </a-table>
@@ -230,14 +231,6 @@ export default {
width: 200, width: 200,
scopedSlots: { customRender: 'action' } scopedSlots: { customRender: 'action' }
} }
],
dataSource: [
{
id: 1,
status: 1,
contractNum: '1346',
createTime: '2020-09-02 11:11:11'
}
] ]
} }
}, },
@@ -17,8 +17,8 @@
</template> </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="unlinkProject(record)">取消关联</a> <a @click="unlinkProject(record)" v-has="'revenueContractModule:unlinkProject'">取消关联</a>
</span> </span>
</a-table> </a-table>
<a-button type="primary" @click="submitAduit" :loading="associatedProjectLoading" v-if="canOperate" v-preventclick>提交审核</a-button> <a-button type="primary" @click="submitAduit" :loading="associatedProjectLoading" v-if="canOperate" v-preventclick>提交审核</a-button>
@@ -245,7 +245,7 @@
<a-card :bordered="false" v-if="isSaved" class="associated-project"> <a-card :bordered="false" v-if="isSaved" class="associated-project">
<div class="part-title"> <div class="part-title">
<div class="part-title-text">关联项目</div> <div class="part-title-text">关联项目</div>
<a-button type="link" @click="chooseProject">选择项目 <a-button type="link" @click="chooseProject" v-has="'revenueContractModule:chooseProject'">选择项目
<a-icon type="right"></a-icon> <a-icon type="right"></a-icon>
</a-button> </a-button>
</div> </div>
@@ -414,7 +414,7 @@ export default {
departId: null, // 部门id普通项目列表查询 departId: null, // 部门id普通项目列表查询
projectType: null, //项目类型 projectType: null, //项目类型
signedContactId: null, //签订联系人正式id,用于新增工作组项目回显 signedContactId: null, //签订联系人正式id,用于新增工作组项目回显
newFormData:{} // 传入的数据 newFormData: {} // 传入的数据
} }
}, },
mounted() { mounted() {
@@ -434,7 +434,7 @@ export default {
this.$refs.installmentForm.initInstallmentList([]) this.$refs.installmentForm.initInstallmentList([])
// 税率默认为6 // 税率默认为6
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue({rate: 6}) this.form.setFieldsValue({ rate: 6 })
}) })
this.rateNum = 6 / 100 this.rateNum = 6 / 100
}, },
@@ -447,7 +447,7 @@ export default {
// 通过id获取合同信息 // 通过id获取合同信息
getRevenueContractById(param).then(res => { getRevenueContractById(param).then(res => {
// 这是会员跟会议要传的参数 // 这是会员跟会议要传的参数
this.newFormData = Object.assign({},res.result) this.newFormData = Object.assign({}, res.result)
let record let record
record = res.result record = res.result
this.isSaved = true this.isSaved = true
@@ -473,6 +473,8 @@ export default {
// 获取应收金额和已收金额 // 获取应收金额和已收金额
this.accountsReceivableNum = record.accountsReceivableAmount this.accountsReceivableNum = record.accountsReceivableAmount
this.amountReceivedNum = record.amountReceived this.amountReceivedNum = record.amountReceived
// 将pack值改为数字,解决控制台报错
record.pack = Number(record.pack)
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
this.temporaryModel = Object.assign({}, record) this.temporaryModel = Object.assign({}, record)
this.$nextTick(() => { this.$nextTick(() => {
@@ -609,7 +611,7 @@ export default {
* @param e * @param e
*/ */
noTaxChange(e) { noTaxChange(e) {
e.target.value = (e.target.value.replace(/[^0-9.]/g,'')).trim() e.target.value = (e.target.value.replace(/[^0-9.]/g, '')).trim()
this.inputNoTaxAmount = Number(e.target.value) this.inputNoTaxAmount = Number(e.target.value)
this.calculateContractAmount() this.calculateContractAmount()
}, },
@@ -635,7 +637,7 @@ export default {
} }
let contractNum = this.inputNoTaxAmount * (1 + this.rateNum) let contractNum = this.inputNoTaxAmount * (1 + this.rateNum)
contractNum = contractNum.toFixed(2) contractNum = contractNum.toFixed(2)
this.form.setFieldsValue({contractAmount: contractNum}) this.form.setFieldsValue({ contractAmount: contractNum })
}, },
/** /**
* 应收金额输入 * 应收金额输入
@@ -797,9 +799,9 @@ export default {
// 会议项目 // 会议项目
case 3: case 3:
// 打包为是不能选择关联会议项目 // 打包为是不能选择关联会议项目
if(this.newFormData.pack === 1){ if (this.newFormData.pack === 1) {
this.$message.warn('打包不可选择会议项目') this.$message.warn('打包不可选择会议项目')
}else { } else {
// 传入合同信息 // 传入合同信息
this.$refs.selectMeetingProjectModule.open(this.newFormData) this.$refs.selectMeetingProjectModule.open(this.newFormData)
} }
@@ -34,7 +34,7 @@
</a-form> </a-form>
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'memberProject:add'">新增</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -54,7 +54,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'generalProject:add'">新增</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -35,7 +35,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupMember:add'">新增</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -23,7 +23,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'committee:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -34,9 +34,9 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增分标委</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'committee:add'">新增分标委</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('分标委维护')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('分标委维护')" v-has="'committee:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'committee:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -56,11 +56,11 @@
</template> </template>
<span slot="operation" class="action-span-cell" slot-scope="text, record"> <span slot="operation" class="action-span-cell" slot-scope="text, record">
<a @click="handleMaintainData(record)">资料维护</a> <a @click="handleMaintainData(record)" v-has="'committee:fileMaintenance'">资料维护</a>
<a @click="handleMaintainMeeting(record)">会议维护</a> <a @click="handleMaintainMeeting(record)" v-has="'committee:meetingMaintenance'">会议维护</a>
<a @click="handleAddCommitteeMember(record)">新增成员</a> <a @click="handleAddCommitteeMember(record)" v-has="'committee:addMember'">新增成员</a>
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'committee:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'committee:delete'">删除</a>
</span> </span>
<a-table <a-table
@@ -77,7 +77,7 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, itemRecord"> <span slot="action" class="action-span-cell" slot-scope="text, itemRecord">
<a @click="handleDeleteMember(itemRecord.childrenId)">删除</a> <a @click="handleDeleteMember(itemRecord.childrenId)" v-has="'committee:member:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</a-table> </a-table>
@@ -208,6 +208,7 @@ export default {
* @param value * @param value
*/ */
handleContactChange(value) { handleContactChange(value) {
console.log(value)
const param = { const param = {
id: value.key id: value.key
} }
@@ -35,7 +35,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'incomePaymentAndInvoiving:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -46,8 +46,8 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('到账开票')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('到账开票')" v-has="'incomePaymentAndInvoiving:export'">导出</a-button>
<a-button type="primary" icon="file-text" @click="batchInvoicing">合并开票</a-button> <a-button type="primary" icon="file-text" @click="batchInvoicing" v-has="'incomePaymentAndInvoiving:batchInvoicing'">合并开票</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -87,8 +87,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="incomePayment(record)">来款</a> <a @click="incomePayment(record)" v-has="'incomePaymentAndInvoiving:incomePayment'">来款</a>
<a @click="invoicing(record)" :disabled="record.needInvoice === 0">开票</a> <a @click="invoicing(record)" :disabled="record.needInvoice === 0" v-has="'incomePaymentAndInvoiving:invoicing'">开票</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -123,10 +123,11 @@
dictCode="signup_status"/> dictCode="signup_status"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- 只有工作组会议与分标委会议才有审核信息--> <!-- 只有工作组会议与分标委会议才有审核信息-->
<a-col :xl="6" :lg="7" :md="8" :sm="24" v-show="currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5' "> <a-col :xl="6" :lg="7" :md="8" :sm="24"
v-show="currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5' ">
<a-form-item label="审核报名信息"> <a-form-item label="审核报名信息">
<j-dict-select-tag v-model="queryParam.checkSingInResult" placeholder="请选择" <j-dict-select-tag v-model="queryParam.checkSingInResult" placeholder="请选择"
dictCode="signup_status"/> dictCode="signup_status"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -158,7 +159,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'attendance:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -171,14 +172,17 @@
<div class="table-operator"> <div class="table-operator">
<!-- 变更去掉了此功能 暂时注释 2021-09-16 --> <!-- 变更去掉了此功能 暂时注释 2021-09-16 -->
<!-- <a-button type="primary" icon="import" @click="importParticipant">导入参会人</a-button>--> <!-- <a-button type="primary" icon="import" @click="importParticipant">导入参会人</a-button>-->
<a-button type="primary" icon="plus" @click="addParticipant">添加参会人</a-button> <a-button type="primary" icon="plus" @click="addParticipant" v-has="'attendance:add'">添加参会人</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会员项目')" v-has="'attendance:export'">导出
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> </a-button>
<a-button type="danger" icon="delete" @click="batchDel" v-has="'attendance:batchDel'">批量删除</a-button>
<!--当会议费用为0不需要合并开票 --> <!--当会议费用为0不需要合并开票 -->
<!-- 变更将此功能添加到到账开票了 暂时注释 2021-09-16 --> <!-- 变更将此功能添加到到账开票了 暂时注释 2021-09-16 -->
<!-- <a-button type="primary" @click="batchInvoice" v-show="currentMeetingInfo.meetingCosts !== 0">合并开票</a-button>--> <!-- <a-button type="primary" @click="batchInvoice" v-show="currentMeetingInfo.meetingCosts !== 0">合并开票</a-button>-->
<!--只有国际研讨会才会有设置对接人--> <!--只有国际研讨会才会有设置对接人-->
<a-button type="primary" @click="batchSetDocker" v-if="currentMeetingInfo.meetingType === '3' ">设置对接人</a-button> <a-button type="primary" @click="batchSetDocker" v-if="currentMeetingInfo.meetingType === '3' "
v-has="'attendance:batchSetDocker'">设置对接人
</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -221,12 +225,15 @@
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮--> <!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮-->
<a @click="handleAudit(record)" v-if="record.payMode === 1 && record.paymentRecord">审核凭证</a> <a @click="handleAudit(record)" v-if="record.payMode === 1 && record.paymentRecord"
v-has="'attendance:auditCredentials'">审核凭证</a>
<!-- 只有工作组会议与分标委会议才有审核报名信息--> <!-- 只有工作组会议与分标委会议才有审核报名信息-->
<a @click="handleAuditSignUp(record)" v-show="(currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5') && record.registerCheckResult !== 1 ">审核报名信息</a> <a @click="handleAuditSignUp(record)"
<a @click="handleEdit(record)">编辑</a> v-show="(currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5') && record.registerCheckResult !== 1 "
v-has="'attendance:auditSignUp'">审核报名信息</a>
<a @click="handleEdit(record)" v-has="'attendance:edit'">编辑</a>
<!--删除参会人需要判断改参会人是否与合同关联--> <!--删除参会人需要判断改参会人是否与合同关联-->
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'attendance:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -245,9 +252,9 @@
</template> </template>
<script> <script>
import {JeroListMixin} from '@/mixins/JeroListMixin' import { JeroListMixin } from '@/mixins/JeroListMixin'
import {mixinDevice} from '@/utils/mixin' import { mixinDevice } from '@/utils/mixin'
import {getMeetInfoById, createQcCode} from '@api/incomeMeetingApi' import { getMeetInfoById, createQcCode } from '@api/incomeMeetingApi'
import JYearDate from '@comp/jero/JYearDate' import JYearDate from '@comp/jero/JYearDate'
import JDictSelectTag from '@comp/dict/JDictSelectTag' import JDictSelectTag from '@comp/dict/JDictSelectTag'
import ImportParticipantModal from '@views/incomePayments/meetManage/modules/ImportParticipantModal' import ImportParticipantModal from '@views/incomePayments/meetManage/modules/ImportParticipantModal'
@@ -295,8 +302,8 @@ export default {
title: '参会单位', title: '参会单位',
align: 'center', align: 'center',
dataIndex: 'companyName', dataIndex: 'companyName',
scopedSlots: {customRender: 'htmlSlot'}, scopedSlots: { customRender: 'htmlSlot' },
width: 180, width: 180
}, },
{ {
title: '参会人员', title: '参会人员',
@@ -309,60 +316,60 @@ export default {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
dataIndex: 'amountReceivable', dataIndex: 'amountReceivable',
width: 100, width: 100
}, },
{ {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
dataIndex: 'paidAmount', dataIndex: 'paidAmount',
width: 120, width: 120
}, },
{ {
title: '缴费方式', title: '缴费方式',
align: 'center', align: 'center',
dataIndex: 'payMode_dictText', dataIndex: 'payMode_dictText',
width: 120, width: 120
}, },
{ {
title: '是否签到', title: '是否签到',
align: 'center', align: 'center',
dataIndex: 'checkIn_dictText', dataIndex: 'checkIn_dictText',
width: 100, width: 100
}, },
{ {
title: '打包', title: '打包',
align: 'center', align: 'center',
dataIndex: 'pack', dataIndex: 'pack',
width: 100, width: 100,
scopedSlots: {customRender: 'status-pack'} scopedSlots: { customRender: 'status-pack' }
}, },
{ {
title: '需要发票', title: '需要发票',
align: 'center', align: 'center',
dataIndex: 'needInvoice', dataIndex: 'needInvoice',
width: 100, width: 100,
scopedSlots: {customRender: 'status-pack'} scopedSlots: { customRender: 'status-pack' }
}, },
{ {
title: '到账', title: '到账',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'inAccount', dataIndex: 'inAccount',
scopedSlots: {customRender: 'status'} scopedSlots: { customRender: 'status' }
}, },
{ {
title: '开票', title: '开票',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'makeInvoice', dataIndex: 'makeInvoice',
scopedSlots: {customRender: 'status'} scopedSlots: { customRender: 'status' }
}, },
{ {
title: '邮寄', title: '邮寄',
align: 'center', align: 'center',
width: 100, width: 100,
dataIndex: 'mail', dataIndex: 'mail',
scopedSlots: {customRender: 'status'} scopedSlots: { customRender: 'status' }
}, },
{ {
title: '对接人', title: '对接人',
@@ -374,8 +381,8 @@ export default {
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
width: 300, width: 300,
scopedSlots: {customRender: 'action'} scopedSlots: { customRender: 'action' }
}, }
], ],
disableMixinCreated: true, disableMixinCreated: true,
url: { url: {
@@ -383,7 +390,7 @@ export default {
delete: '/meeting/payMeetingSituation/delete', delete: '/meeting/payMeetingSituation/delete',
deleteBatch: '/meeting/payMeetingSituation/deleteBatch', deleteBatch: '/meeting/payMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/payMeetingSituation/exportXls', exportXlsUrl: '/meeting/payMeetingSituation/exportXls',
importExcelUrl: '/meeting/payMeetingSituation/importExcel', importExcelUrl: '/meeting/payMeetingSituation/importExcel'
}, },
// 当前的会议信息详情 // 当前的会议信息详情
currentMeetingInfo: {}, currentMeetingInfo: {},
@@ -395,7 +402,7 @@ export default {
// 收款二维码 // 收款二维码
payMentQRCode: '', payMentQRCode: '',
// 会议费用 // 会议费用
meetingCostBool:false meetingCostBool: false
} }
}, },
created() { created() {
@@ -415,7 +422,7 @@ export default {
this.columns.splice(index,1) this.columns.splice(index,1)
} }
// 计算会议费用 会议费用为0 添加参会人不显示邮寄信息与缴费信息 标协会议 // 计算会议费用 会议费用为0 添加参会人不显示邮寄信息与缴费信息 标协会议
if(this.currentMeetingInfo.meetingType === '2' && this.currentMeetingInfo.meetingCostsVip){ if (this.currentMeetingInfo.meetingType === '2' && this.currentMeetingInfo.meetingCostsVip) {
// 标协会员的费用 // 标协会员的费用
let vipCost = this.currentMeetingInfo.meetingCostsVip let vipCost = this.currentMeetingInfo.meetingCostsVip
// 判断标协会员的费用是否是0 // 判断标协会员的费用是否是0
@@ -423,21 +430,21 @@ export default {
let cost = this.currentMeetingInfo.meetingCosts let cost = this.currentMeetingInfo.meetingCosts
// 判断普通会员的费用是否是0 // 判断普通会员的费用是否是0
let flag = cost === 0 || cost === '0.00' let flag = cost === 0 || cost === '0.00'
if(flag && flagVip){ if (flag && flagVip) {
// 说明会议费用为0 // 说明会议费用为0
this.meetingCostBool = true this.meetingCostBool = true
}else { } else {
this.meetingCostBool = false this.meetingCostBool = false
} }
// 其他会议值判断一个费用 // 其他会议值判断一个费用
}else if(this.currentMeetingInfo.meetingCosts){ } else if (this.currentMeetingInfo.meetingCosts) {
// 判断其他会议 // 判断其他会议
let cost = this.currentMeetingInfo.meetingCosts let cost = this.currentMeetingInfo.meetingCosts
// 判断普通会员的费用是否是0 // 判断普通会员的费用是否是0
let flag = cost === 0 || cost === '0.00' let flag = cost === 0 || cost === '0.00'
if(flag){ if (flag) {
this.meetingCostBool = true this.meetingCostBool = true
}else { } else {
this.meetingCostBool = false this.meetingCostBool = false
} }
} }
@@ -19,7 +19,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'memberProject:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -30,9 +30,9 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'memberProject:add'">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会员项目')" v-has="'memberProject:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'memberProject:batchDel'">批量删除</a-button>
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"--> <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
<!-- @change="handleImportExcel">--> <!-- @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>--> <!-- <a-button type="primary" icon="import">导入</a-button>-->
@@ -66,8 +66,8 @@
<span v-else></span> <span v-else></span>
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'memberProject:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'memberProject:delete'">删除</a>
</span> </span>
</a-table> </a-table>
@@ -49,7 +49,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'safeguardMember:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -60,14 +60,14 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'safeguardMember:add'">新增</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel"> @change="handleImportExcel" v-has="'safeguardMember:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="download" @click="downTemplate('会员项目成员导入模板文件')">下载模板</a-button> <a-button type="primary" icon="download" @click="downTemplate('会员项目成员导入模板文件')" v-has="'safeguardMember:downTemplate'">下载模板</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会员项目成员')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会员项目成员')" v-has="'safeguardMember:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'safeguardMember:batchDel'">批量删除</a-button>
</div> </div>
@@ -104,8 +104,8 @@
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'safeguardMember:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'safeguardMember:delete'">删除</a>
</span> </span>
</a-table> </a-table>
@@ -19,7 +19,7 @@
style="float: left; overflow: hidden" style="float: left; overflow: hidden"
class="table-page-search-submitButtons" class="table-page-search-submitButtons"
> >
<a-button type="primary" @click="searchQuery" icon="search" <a-button type="primary" @click="searchQuery" icon="search" v-has="'safeguardStardsMember:search'"
>查询</a-button >查询</a-button
> >
<a-button <a-button
@@ -43,6 +43,7 @@
type="primary" type="primary"
icon="download" icon="download"
@click="handleExportXls('标协会员')" @click="handleExportXls('标协会员')"
v-has="'safeguardStardsMember:export'"
>导出</a-button >导出</a-button
> >
<!-- <a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>--> <!-- <a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button>-->
@@ -13,7 +13,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'stardsMember:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -55,7 +55,7 @@
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleStandardMeeting(record)">会议维护</a> <a @click="handleStandardMeeting(record)" v-has="'stardsMember:meetingMaintenance'">会议维护</a>
</span> </span>
</a-table> </a-table>
+5 -5
View File
@@ -45,7 +45,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'billMail:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -56,7 +56,7 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="download" @click="handleExportXls">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls" v-has="'billMail:export'">导出</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -89,9 +89,9 @@
<a-button type="primary" :disabled="record.sendMethod === 1 ? false : true">打印</a-button> <a-button type="primary" :disabled="record.sendMethod === 1 ? false : true">打印</a-button>
</span> </span>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleAdd(record)" v-if="record.postStatus === 0">邮寄</a> <a @click="handleAdd(record)" v-if="record.postStatus === 0" v-has="'billMail:mail'">邮寄</a>
<a @click="handleEdit(record)" v-if="record.postStatus === 1">修改</a> <a @click="handleEdit(record)" v-if="record.postStatus === 1" v-has="'billMail:edit'">修改</a>
<a @click="goLogistics(record)" v-if="record.postStatus === 1">查看物流</a> <a @click="goLogistics(record)" v-if="record.postStatus === 1" v-has="'billMail:checkLogistics'">查看物流</a>
</span> </span>
</a-table> </a-table>
</div> </div>
+5 -5
View File
@@ -29,7 +29,7 @@
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'contractMail:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -40,7 +40,7 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="download" @click="handleExportXls">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls" v-has="'contractMail:export'">导出</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -68,9 +68,9 @@
<a-button type="primary" :disabled="record.sendMethod === '1' ? false : true">打印</a-button> <a-button type="primary" :disabled="record.sendMethod === '1' ? false : true">打印</a-button>
</span> </span>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleAdd(record.id)" v-if="record.postStatus === '0'">邮寄</a> <a @click="handleAdd(record.id)" v-if="record.postStatus === '0'" v-has="'contractMail:mail'">邮寄</a>
<a @click="handleEdit(record)" v-if="record.postStatus === '1'">修改</a> <a @click="handleEdit(record)" v-if="record.postStatus === '1'" v-has="'contractMail:edit'">修改</a>
<a @click="goLogistics(record)" v-if="record.postStatus === '1'">查看物流</a> <a @click="goLogistics(record)" v-if="record.postStatus === '1'" v-has="'contractMail:checkLogistics'">查看物流</a>
</span> </span>
</a-table> </a-table>
</div> </div>
+6 -6
View File
@@ -19,7 +19,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'packCompany:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -30,9 +30,9 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'packCompany:add'">新增</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('打包企业列表')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('打包企业列表')" v-has="'packCompany:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'packCompany:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -63,8 +63,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'packCompany:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'packCompany:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -54,7 +54,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'packProject:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -64,11 +64,11 @@
<!-- /查询区域--> <!-- /查询区域-->
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handlePack">打包</a-button> <a-button type="primary" icon="plus" @click="handlePack" v-has="'packProject:pack'">打包</a-button>
<a-button type="danger" icon="close-circle" @click="batchCancelPack">批量取消打包</a-button> <a-button type="danger" icon="close-circle" @click="batchCancelPack" v-has="'packProject:batchCancelPack'">批量取消打包</a-button>
<a-button type="primary" icon="pay-circle" @click="batchIncomePayment">批量来款</a-button> <a-button type="primary" icon="pay-circle" @click="batchIncomePayment" v-has="'packProject:batchIncomePayment'">批量来款</a-button>
<a-button type="primary" icon="file-text" @click="batchInvoicing">批量开票</a-button> <a-button type="primary" icon="file-text" @click="batchInvoicing" v-has="'packProject:batchInvoicing'">批量开票</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('打包项目列表')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('打包项目列表')" v-has="'packProject:export'">导出</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -108,9 +108,9 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="incomePayment(record)" :disabled="Number(record.receivableAmount) === 0">来款</a> <a @click="incomePayment(record)" :disabled="Number(record.receivableAmount) === 0" v-has="'packProject:incomePayment'">来款</a>
<a @click="cancelPack(record.id)">取消打包</a> <a @click="cancelPack(record.id)" v-has="'packProject:cancelPack'">取消打包</a>
<a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0">开票</a> <a @click="invoicing(record)" :disabled="record.needInvoice === 0 || Number(record.receivableAmount) === 0" v-has="'packProject:invoicing'">开票</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -62,7 +62,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'committeeMeeting:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -73,11 +73,11 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'committeeMeeting:add'">新增</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')" v-has="'committeeMeeting:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'committeeMeeting:batchDel'">批量删除</a-button>
<!--只有工作会议与分标委会议才有--> <!--只有工作会议与分标委会议才有-->
<a-button type="primary" @click="publishRemind" v-if="meetingType === '5' ">发布</a-button> <a-button type="primary" @click="publishRemind" v-if="meetingType === '5' " v-has="'committeeMeeting:publish'">发布</a-button>
</div> </div>
<!-- /操作按钮区域-end--> <!-- /操作按钮区域-end-->
@@ -108,10 +108,10 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="uploadFile(record)">上传文件</a> <a @click="uploadFile(record)" v-has="'committeeMeeting:upload'">上传文件</a>
<!-- <a @click="applyMsg">报名信息</a>--> <!-- <a @click="applyMsg">报名信息</a>-->
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'committeeMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'committeeMeeting:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -66,7 +66,8 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery"
v-has="'workingGroupConference:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -77,10 +78,12 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupConference:add'" v-if="canOperate">新增</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('工作组会议维护')"
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> v-has="'workingGroupConference:export'">导出
<a-button type="primary" @click="publishRemind">发布</a-button> </a-button>
<a-button type="danger" icon="delete" @click="batchDel" v-has="'workingGroupConference:batchDel'" v-if="canOperate">批量删除</a-button>
<a-button type="primary" @click="publishRemind" v-has="'workingGroupConference:publish'" v-if="canOperate">发布</a-button>
</div> </div>
<!-- /操作按钮区域-end--> <!-- /操作按钮区域-end-->
@@ -102,18 +105,19 @@
<!-- 会议名称 点击去参会情况--> <!-- 会议名称 点击去参会情况-->
<template slot="htmlSlot" slot-scope="text, record"> <template slot="htmlSlot" slot-scope="text, record">
<j-ellipsis v-if="!!text" class="primary-color" :value="text" :length="20" @click="toAttendance(record)"></j-ellipsis> <j-ellipsis v-if="!!text" class="primary-color" :value="text" :length="20"
@click="toAttendance(record)"></j-ellipsis>
</template> </template>
<template slot="text" slot-scope="text"> <template slot="text" slot-scope="text">
<j-ellipsis :value="text" :length="20"></j-ellipsis> <j-ellipsis :value="text" :length="20"></j-ellipsis>
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
<a @click="uploadFile(record)">上传文件</a> <a @click="uploadFile(record)" v-has="'workingGroupConference:upload'">上传文件</a>
<!-- <a @click="applyMsg">报名信息</a>--> <!-- <a @click="applyMsg">报名信息</a>-->
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'workingGroupConference:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'workingGroupConference:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -123,8 +127,8 @@
</template> </template>
<script> <script>
import {JeroListMixin} from '@/mixins/JeroListMixin' import { JeroListMixin } from '@/mixins/JeroListMixin'
import {RangeDateMixin} from '@/mixins/RangeDateMixin' import { RangeDateMixin } from '@/mixins/RangeDateMixin'
import JYearDate from '@comp/jero/JYearDate' import JYearDate from '@comp/jero/JYearDate'
import JDate from '@comp/tools/JDate' import JDate from '@comp/tools/JDate'
import moment from 'moment' import moment from 'moment'
@@ -150,12 +154,12 @@ export default {
disableMixinCreated: true, disableMixinCreated: true,
list: [], list: [],
labelCol: { labelCol: {
xs: {span: 24}, xs: { span: 24 },
sm: {span: 5} sm: { span: 5 }
}, },
wrapperCol: { wrapperCol: {
xs: {span: 24}, xs: { span: 24 },
sm: {span: 10} sm: { span: 10 }
}, },
dateKeyObj: { dateKeyObj: {
beginKey: 'meetingStartTime', beginKey: 'meetingStartTime',
@@ -176,7 +180,7 @@ export default {
title: '会议名称', title: '会议名称',
align: 'center', align: 'center',
dataIndex: 'meetingName', dataIndex: 'meetingName',
scopedSlots: {customRender: 'htmlSlot'}, scopedSlots: { customRender: 'htmlSlot' },
width: 160, width: 160,
}, },
@@ -185,55 +189,57 @@ export default {
align: 'center', align: 'center',
dataIndex: 'meetingType_dictText', dataIndex: 'meetingType_dictText',
width: 100, width: 100,
scopedSlots: {customRender: 'text'} scopedSlots: { customRender: 'text' }
}, },
{ {
title: '负责人', title: '负责人',
align: 'center', align: 'center',
dataIndex: 'directorName', dataIndex: 'directorName',
width: 160, width: 160,
scopedSlots: {customRender: 'text'} scopedSlots: { customRender: 'text' }
}, },
{ {
title: '召开时间', title: '召开时间',
align: 'center', align: 'center',
dataIndex: 'startTime', dataIndex: 'startTime',
width: 160, 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: '召开地点', title: '召开地点',
align: 'center', align: 'center',
dataIndex: 'venue', dataIndex: 'venue',
width: 160, width: 160,
customRender: (text, record) => (<j-ellipsis value={text + '/' + record.address} length={20}></j-ellipsis>) customRender: (text, record) => (
<j-ellipsis value={ text + '/' + record.address } length={ 20 }></j-ellipsis>)
}, },
{ {
title: '年份', title: '年份',
align: 'center', align: 'center',
dataIndex: 'particularYear', dataIndex: 'particularYear',
width: 100, width: 100,
scopedSlots: {customRender: 'text'} scopedSlots: { customRender: 'text' }
}, },
{ {
title: '已提醒', title: '已提醒',
align: 'center', align: 'center',
dataIndex: 'remind_dictText', dataIndex: 'remind_dictText',
width: 100, width: 100,
scopedSlots: {customRender: 'text'} scopedSlots: { customRender: 'text' }
}, },
{ {
title: '创建时间', title: '创建时间',
align: 'center', align: 'center',
dataIndex: 'createTime', dataIndex: 'createTime',
scopedSlots: {customRender: 'text'} scopedSlots: { customRender: 'text' }
}, },
{ {
title: '操作', title: '操作',
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
width: 160, width: 160,
scopedSlots: {customRender: 'action'} scopedSlots: { customRender: 'action' }
}, },
], ],
url: { url: {
@@ -241,12 +247,14 @@ export default {
delete: '/meeting/payMeeting/delete', delete: '/meeting/payMeeting/delete',
deleteBatch: '/meeting/payMeeting/deleteBatch', deleteBatch: '/meeting/payMeeting/deleteBatch',
exportXlsUrl: '/meeting/payMeeting/exportXls', exportXlsUrl: '/meeting/payMeeting/exportXls',
} },
canOperate: true, // 是否可操作(负责人B不可操作)
} }
}, },
created() { created() {
this.workingGroupProject = this.$route.query.workingGroupProject this.workingGroupProject = this.$route.query.workingGroupProject
this.workingGroupProjectId = this.$route.query.workingGroupProjectId this.workingGroupProjectId = this.$route.query.workingGroupProjectId
this.canOperate = this.$route.query.canOperate === 'true' ? true : false
this.filters.workingGroupId = this.workingGroupProjectId this.filters.workingGroupId = this.workingGroupProjectId
this.loadData(1) this.loadData(1)
}, },
@@ -322,7 +330,7 @@ export default {
path: '/incomePayments/meetManage/Attendance', path: '/incomePayments/meetManage/Attendance',
query: { query: {
id: record.id, id: record.id,
meetingName:record.meetingName meetingName: record.meetingName
} }
}) })
}, },
@@ -354,7 +362,7 @@ export default {
this.queryParam.meetingEndTime = this.queryParam.meetingEndTime ? this.queryParam.meetingEndTime + ' ' + '23:59:59' : undefined this.queryParam.meetingEndTime = this.queryParam.meetingEndTime ? this.queryParam.meetingEndTime + ' ' + '23:59:59' : undefined
this.queryParam.createTime_begin = this.queryParam.createTime_begin ? this.queryParam.createTime_begin + ' ' + '00:00:00' : undefined this.queryParam.createTime_begin = this.queryParam.createTime_begin ? this.queryParam.createTime_begin + ' ' + '00:00:00' : undefined
this.queryParam.createTime_end = this.queryParam.createTime_end ? this.queryParam.createTime_end + ' ' + '23:59:59' : undefined this.queryParam.createTime_end = this.queryParam.createTime_end ? this.queryParam.createTime_end + ' ' + '23:59:59' : undefined
this.lastQueryParam = {...this.queryParam} this.lastQueryParam = { ...this.queryParam }
this.loadData(1) this.loadData(1)
}, },
} }
@@ -43,7 +43,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'generalProject:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -54,8 +54,8 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'generalProject:add'">新增</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'generalProject:batchDel'">批量删除</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -95,8 +95,8 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'generalProject:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'generalProject:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -52,7 +52,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'internationalSeminar:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -63,9 +63,9 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'internationalSeminar:add'">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会议管理')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会议管理')" v-has="'internationalSeminar:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'internationalSeminar:batchDel'">批量删除</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -96,10 +96,10 @@
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleUploadFile(record)">上传文件</a> <a @click="handleUploadFile(record)" v-has="'internationalSeminar:upload'">上传文件</a>
<!-- <a @click="handleSignup(record)">报名信息</a>--> <!-- <a @click="handleSignup(record)">报名信息</a>-->
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'internationalSeminar:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'internationalSeminar:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
+7 -7
View File
@@ -52,7 +52,7 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'otherMeeting:search'">查询</a-button>
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button> <a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -63,9 +63,9 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'otherMeeting:add'">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会议管理')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('会议管理')" v-has="'otherMeeting:export'">导出</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'otherMeeting:batchDel'">批量删除</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -94,10 +94,10 @@
<span v-else></span> <span v-else></span>
</template> </template>
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleUploadFile(record)">上传文件</a> <a @click="handleUploadFile(record)" v-has="'otherMeeting:upload'">上传文件</a>
<!-- <a @click="handleSignup(record)">报名信息</a>--> <!-- <a @click="handleSignup(record)">报名信息</a>-->
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'otherMeeting:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'otherMeeting:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -46,7 +46,8 @@
</a-col> </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"> <a-form-item label="来款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.chargeStatus " placeholder="请选择来款状态" dictCode="work_group_charge_status"/> <j-dict-select-tag v-model="queryParam.chargeStatus " placeholder="请选择来款状态"
dictCode="work_group_charge_status"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -56,7 +57,8 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery"
v-has="'workingGroupMember:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -67,16 +69,21 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">添加成员</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" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :data="importParam"
:action="importExcelUrl" @change="handleImportExcel"> :action="importExcelUrl" @change="handleImportExcel" v-has="'workingGroupMember:import'" v-if="canOperate">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="export" @click="handleExportXls('工作组成员')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('工作组成员')" v-has="'workingGroupMember:export'">
<a-button type="primary" icon="download" @click="downTemplate('工作组成员导入模板')">下载模板</a-button> 导出
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> </a-button>
<a-button type="primary" @click="setChargeNotic">设置收费通知</a-button> <a-button type="primary" icon="download" @click="downTemplate('工作组成员导入模板')"
<a-button type="primary" @click="setDunningReminder">催款提醒</a-button> 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>
</div> </div>
<!-- /操作按钮区域-end--> <!-- /操作按钮区域-end-->
@@ -117,9 +124,9 @@
<j-ellipsis :value="text" :length="18"></j-ellipsis> <j-ellipsis :value="text" :length="18"></j-ellipsis>
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'workingGroupMember:edit'">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'workingGroupMember:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -141,10 +148,10 @@ import StatusSlot from '../../components/tools/StatusSlot'
import ProjectDetailModal from '../../components/ProjectDetailModal' import ProjectDetailModal from '../../components/ProjectDetailModal'
import WorkingGroupMemberUnitModule from './modules/WorkingGroupMemberUnitModule' import WorkingGroupMemberUnitModule from './modules/WorkingGroupMemberUnitModule'
import WorkingGroupMemberSetChargeNotice from './modules/WorkingGroupMemberSetChargeNotice' import WorkingGroupMemberSetChargeNotice from './modules/WorkingGroupMemberSetChargeNotice'
import { getFileInfo } from '../../api/api'
import Vue from 'vue' import Vue from 'vue'
import { ACCESS_TOKEN } from '../../store/mutation-types' import { ACCESS_TOKEN } from '../../store/mutation-types'
import PreviewFile from '../../components/jero/PreviewFile' import PreviewFile from '../../components/jero/PreviewFile'
const Base64 = require('js-base64').Base64 const Base64 = require('js-base64').Base64
export default { export default {
@@ -297,7 +304,8 @@ export default {
], ],
workingGroupDetail: {}, workingGroupDetail: {},
chargeNoticeList: [], // 收费通知号选项 chargeNoticeList: [], // 收费通知号选项
importParam: {} importParam: {},
canOperate: true, // 是否可操作(负责人B不可操作)
} }
}, },
created() { created() {
@@ -312,6 +320,7 @@ export default {
this.spinning = true this.spinning = true
this.workingGroupProject = this.$route.query.workingGroupProject this.workingGroupProject = this.$route.query.workingGroupProject
this.workingGroupProjectId = this.$route.query.workingGroupProjectId this.workingGroupProjectId = this.$route.query.workingGroupProjectId
this.canOperate = this.$route.query.canOperate === 'true' ? true : false
this.filters.workingGroupId = this.workingGroupProjectId this.filters.workingGroupId = this.workingGroupProjectId
this.importParam.workGroupId = this.workingGroupProjectId this.importParam.workGroupId = this.workingGroupProjectId
this.loadData() this.loadData()
@@ -436,8 +445,8 @@ export default {
previewFile(file) { previewFile(file) {
console.log(file) console.log(file)
if (file && file.url) { if (file && file.url) {
const fileFullUrl = `${window._CONFIG['domianWebSocketURL']}/sys/common/download/${file.id}?token=${Vue.ls.get(ACCESS_TOKEN)}&fullfilename=${file.fileName}` const fileFullUrl = `${ window._CONFIG['domianWebSocketURL'] }/sys/common/download/${ file.id }?token=${ Vue.ls.get(ACCESS_TOKEN) }&fullfilename=${ file.fileName }`
let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(Base64.encode(fileFullUrl))}` let url = `${ window._CONFIG['onlinePreviewDomainURL'] }?url=${ encodeURIComponent(Base64.encode(fileFullUrl)) }`
// let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}` // let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}`
window.open(url) window.open(url)
} }
@@ -12,21 +12,21 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'fileMaintenance:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col>
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<!-- /查询区域-end--> <!-- /查询区域-end-->
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator" v-if="canOperate">
<a-button type="primary" icon="plus" @click="handleAdd">上传</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'fileMaintenance:add'">上传</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'fileMaintenance:batchDel'">批量删除</a-button>
<a-button type="primary" @click="batchDistribute">批量分发</a-button> <a-button type="primary" @click="batchDistribute" v-has="'fileMaintenance:batchDistribute'">批量分发</a-button>
<a-button type="primary" icon="export" @click="handleExportXls('资料维护列表')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('资料维护列表')" v-has="'fileMaintenance:export'">导出
</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -56,9 +56,9 @@
<j-ellipsis :value="text" :length="20"></j-ellipsis> <j-ellipsis :value="text" :length="20"></j-ellipsis>
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record" v-if="canOperate">
<a @click="handleDistribute(record.id)">分发</a> <a @click="handleDistribute(record.id)" v-has="'fileMaintenance:distribute'">分发</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'fileMaintenance:delete'">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -155,13 +155,15 @@ export default {
projectType: null, // 1--工作组;2--分标委 projectType: null, // 1--工作组;2--分标委
distributeModalVisible: false, distributeModalVisible: false,
isBatchDistribute: false, isBatchDistribute: false,
dataId: '' // 资料id,传给分发 dataId: '', // 资料id,传给分发
canOperate: true // 是否可操作(负责人B不可操作)
} }
}, },
created() { created() {
// 工作组 // 工作组
if (this.$route.query.hasOwnProperty.call(this.$route.query, 'workingGroupId')) { if (this.$route.query.hasOwnProperty.call(this.$route.query, 'workingGroupId')) {
this.filters.projectId = this.$route.query.workingGroupId this.filters.projectId = this.$route.query.workingGroupId
this.canOperate = this.$route.query.canOperate === 'true' ? true : false
this.projectType = 1 this.projectType = 1
this.filters.projectType = 1 this.filters.projectType = 1
} else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'id')) { } else if (this.$route.query.hasOwnProperty.call(this.$route.query, 'id')) {
@@ -23,7 +23,8 @@
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery"
v-has="'workingGroupProject:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -34,8 +35,8 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="plus" @click="handleAdd">新增</a-button> <a-button type="primary" icon="plus" @click="handleAdd" v-has="'workingGroupProject:add'">新增</a-button>
<a-button type="danger" icon="delete" @click="batchDel">批量删除</a-button> <a-button type="danger" icon="delete" @click="batchDel" v-has="'workingGroupProject:batchDel'">批量删除</a-button>
<!-- 进度条tooltip--> <!-- 进度条tooltip-->
<div class="tooltip"> <div class="tooltip">
@@ -59,18 +60,18 @@
<!-- table表格区域--> <!-- table表格区域-->
<div> <div>
<a-table <a-table
ref="table" ref="table"
size="middle" size="middle"
bordered bordered
rowKey="id" rowKey="id"
:columns="columns" :columns="columns"
:scroll="{x: 1300}" :scroll="{x: 1300}"
:dataSource="dataSource" :dataSource="dataSource"
:pagination="ipagination" :pagination="ipagination"
:loading="loading" :loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange" @change="handleTableChange"
class="j-table-force-nowrap"> class="j-table-force-nowrap">
<!-- 工作组名称--> <!-- 工作组名称-->
<template slot="projectName" slot-scope="text, record"> <template slot="projectName" slot-scope="text, record">
@@ -91,11 +92,11 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="goFilesMaintenance(record)">文件维护</a> <a @click="goFilesMaintenance(record)" v-has="'workingGroupProject:fileMaintenance'">文件维护</a>
<a @click="goConferenceMaintenance(record)">会议维护</a> <a @click="goConferenceMaintenance(record)" v-has="'workingGroupProject:meetingMaintenance'">会议维护</a>
<a @click="copyWorkGroup(record.id)">复制</a> <a @click="copyWorkGroup(record.id)" v-has="'workingGroupProject:copy'" v-if="record.canOperate">复制</a>
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'workingGroupProject:edit'" v-if="record.canOperate">编辑</a>
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'workingGroupProject:delete'" v-if="record.canOperate">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -113,7 +114,7 @@ import SelectPrincipal from '@comp/company/SelectPrincipal'
import ProgressBar from '@comp/ProgressBar' import ProgressBar from '@comp/ProgressBar'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle' import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import IconWorkingGruop from '@/assets/imgs/icon/icon_working_group.png' import IconWorkingGruop from '@/assets/imgs/icon/icon_working_group.png'
import { copyWorkingGroup } from '../../api/incomePaymentsApi' import { copyWorkingGroup, checkoutWorkingGroupPrincipal } from '../../api/incomePaymentsApi'
export default { export default {
name: 'WorkingGroupProjectManagement', name: 'WorkingGroupProjectManagement',
@@ -171,6 +172,27 @@ export default {
] ]
} }
}, },
watch: {
// 监听dataSource校验登录人信息
dataSource: {
handler(val) {
let arr = val
arr.forEach((item, index) => {
// (负责人B不可操作)
checkoutWorkingGroupPrincipal({ id: item.id }).then(res => {
// 不可操作则置否
if (res.success) {
item.canOperate = true
} else {
item.canOperate = false
}
this.$set(this.dataSource, index, item)
})
})
},
deep: true
}
},
methods: { methods: {
/** /**
* 文件维护 * 文件维护
@@ -182,6 +204,7 @@ export default {
path: '/projectManagement/WorkingGroupProjectDataMaintenance', path: '/projectManagement/WorkingGroupProjectDataMaintenance',
query: { query: {
workingGroupId: record.id, workingGroupId: record.id,
canOperate: record.canOperate
} }
}) })
}, },
@@ -194,7 +217,8 @@ export default {
path: '/projectManagement/ConferenceMaintenance', path: '/projectManagement/ConferenceMaintenance',
query: { query: {
workingGroupProject: record.workingGroupProject, workingGroupProject: record.workingGroupProject,
workingGroupProjectId: record.id workingGroupProjectId: record.id,
canOperate: record.canOperate
} }
}) })
}, },
@@ -203,7 +227,7 @@ export default {
* @param id * @param id
*/ */
copyWorkGroup(id) { copyWorkGroup(id) {
copyWorkingGroup({id: id}).then(res => { copyWorkingGroup({ id: id }).then(res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
} else { } else {
@@ -222,7 +246,8 @@ export default {
path: '/projectManagement/WorkingGroupMemberUnitMaintenance', path: '/projectManagement/WorkingGroupMemberUnitMaintenance',
query: { query: {
workingGroupProject: record.workingGroupProject, workingGroupProject: record.workingGroupProject,
workingGroupProjectId: record.id workingGroupProjectId: record.id,
canOperate: record.canOperate
} }
}) })
} }
@@ -259,7 +284,7 @@ export default {
} }
&-partial-payment { &-partial-payment {
background: linear-gradient(0deg,#0075a9 0%, #0096d8 100%); background: linear-gradient(0deg, #0075a9 0%, #0096d8 100%);
} }
&-non-payment { &-non-payment {
@@ -29,7 +29,8 @@
style="width:100%" style="width:100%"
:dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflow-y': 'auto' }" :dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflow-y': 'auto' }"
:treeData="treeDepartData" :treeData="treeDepartData"
v-model="queryParam.departId" :replaceFields="replaceFields"
v-model="queryParam.departCode"
placeholder="请选择科室"> placeholder="请选择科室">
</a-tree-select> </a-tree-select>
</a-form-item> </a-form-item>
@@ -67,7 +68,7 @@
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'wholeInstituteStatistics:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -78,7 +79,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('全所统计')" v-has="'wholeInstituteStatistics:export'">导出</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -90,7 +91,7 @@
bordered bordered
rowKey="id" rowKey="id"
:columns="columns" :columns="columns"
:scroll="{x: 1200}" :scroll="{x: 1300}"
:dataSource="dataSource" :dataSource="dataSource"
:pagination="ipagination" :pagination="ipagination"
:loading="loading" :loading="loading"
@@ -116,7 +117,7 @@
ref="footTable" ref="footTable"
rowKey="id" rowKey="id"
:columns="columnsFooter" :columns="columnsFooter"
:scroll="{x: 1200}" :scroll="{x: 1300}"
:dataSource="footerDataSource" :dataSource="footerDataSource"
:showHeader="false" :showHeader="false"
:pagination="false" :pagination="false"
@@ -166,6 +167,9 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
treeDepartData: [], treeDepartData: [],
replaceFields: {
value: 'orgCode'
},
columns: [ columns: [
{ {
title: '序号', title: '序号',
@@ -197,13 +201,15 @@ export default {
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 140, width: 200,
dataIndex: 'allMoney' dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 140, width: 200,
dataIndex: 'comeAllMoney' dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
@@ -239,13 +245,15 @@ export default {
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 140, width: 200,
dataIndex: 'allMoney' dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 140, width: 200,
dataIndex: 'comeAllMoney' dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
@@ -254,6 +262,7 @@ export default {
} }
], ],
footerDataSource: [], footerDataSource: [],
// 给定当年作为来款年份默认查询条件
queryParam: { queryParam: {
year: new Date().getFullYear().toString() year: new Date().getFullYear().toString()
}, },
@@ -323,7 +332,7 @@ export default {
this.loading = true this.loading = true
getAction(this.url.list, params).then((res) => { getAction(this.url.list, params).then((res) => {
if (res.success) { if (res.success) {
this.dataSource = res.result.records this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records // this.dataSource = res.result.pageList.records
let obj = { let obj = {
id: '1', id: '1',
@@ -332,8 +341,8 @@ export default {
comeAllMoney: res.result.sumOfReallyMoney.toString() comeAllMoney: res.result.sumOfReallyMoney.toString()
} }
this.footerDataSource = [obj] this.footerDataSource = [obj]
if (res.result.total) { if (res.result.pageList.total) {
this.ipagination.total = res.result.total this.ipagination.total = res.result.pageList.total
//清空列表选中 //清空列表选中
this.onClearSelected() this.onClearSelected()
} else { } else {
@@ -395,6 +404,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
@@ -9,7 +9,7 @@
<a-row> <a-row>
<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"> <a-form-item label="来款项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款项目" v-model="queryParam.contractName"></a-input> <a-input placeholder="请输入来款项目" v-model="queryParam.projectName"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -19,21 +19,21 @@
</a-col> </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"> <a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.paymentDate"></j-year-date> <j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-date>
</a-form-item> </a-form-item>
</a-col> </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"> <a-form-item label="付款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.pack" <j-dict-select-tag v-model="queryParam.inAccountStatue"
placeholder="请选择付款状态" placeholder="请选择付款状态"
dictCode="yn"/> dictCode="pay_statistics_status"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24"> <a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span> <span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -49,7 +49,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('个人来款详情')">导出</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -117,6 +117,7 @@
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle' import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate' import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '@api/manage'
export default { export default {
name: 'IndividualPaymentStatisticsDetail', name: 'IndividualPaymentStatisticsDetail',
@@ -133,7 +134,15 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
url: { url: {
list: '' list: '/statistics/principalPeople/listForDetail',
exportXlsUrl: '/statistics/principalPeople/excelDetail'
},
// 给定当年作为来款年份默认查询条件
queryParam: {
year: new Date().getFullYear().toString()
},
lastQueryParam: {
year: new Date().getFullYear().toString()
}, },
columns: [ columns: [
{ {
@@ -149,7 +158,7 @@ export default {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'workGroup', dataIndex: 'projectName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
@@ -167,7 +176,7 @@ export default {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
} }
], ],
@@ -228,7 +237,61 @@ export default {
}, },
true true
) )
} },
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
// 负责人id
params.principalNameId = this.$route.query.principalId
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
searchReset() {
this.lastQueryParam = {
year: new Date().getFullYear().toString()
}
this.queryParam = {
year: new Date().getFullYear().toString()
}
this.loadData(1)
},
} }
} }
</script> </script>
@@ -7,66 +7,38 @@
<div class="table-page-search-wrapper"> <div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row> <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.contractNum"></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">
<a-input placeholder="请输入来款项目" v-model="queryParam.contractName"></a-input>
</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"> <a-form-item label="项目负责人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalId"></select-principal> <select-principal placeholder="请选择项目负责人" v-model="queryParam.principalId"></select-principal>
</a-form-item> </a-form-item>
</a-col> </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.year"></j-year-date>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</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"> <a-form-item label="所属科室" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-tree-select <a-tree-select
style="width:100%" style="width:100%"
:dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflow-y': 'auto' }" :dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflow-y': 'auto' }"
:treeData="treeDepartData" :treeData="treeDepartData"
v-model="queryParam.departId" :replaceFields="replaceFields"
v-model="queryParam.departCode"
placeholder="请选择科室"> placeholder="请选择科室">
</a-tree-select> </a-tree-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款用途" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.chargeUse" placeholder="请选择来款用途" dictCode="payment_charge_use"/>
</a-form-item>
</a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></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 style="width:100%" placeholder="请选择来款年份" v-model="queryParam.paymentDate"></j-year-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 v-model="queryParam.pack"
placeholder="请选择是否打包"
dictCode="yn"/>
</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 v-model="queryParam.pack"
placeholder="请选择付款状态"
dictCode="yn"/>
</a-form-item>
</a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'individualPaymentStatistics:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -77,7 +49,9 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('个人来款统计')"
v-has="'individualPaymentStatistics:export'">导出
</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -140,6 +114,7 @@ import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate' import JYearDate from '../../../components/jero/JYearDate'
import SelectPrincipal from '../../../components/company/SelectPrincipal' import SelectPrincipal from '../../../components/company/SelectPrincipal'
import { queryDepartTreeList } from '../../../api/api' import { queryDepartTreeList } from '../../../api/api'
import { getAction } from '@api/manage'
export default { export default {
name: 'IndividualPaymentStatisticsList', name: 'IndividualPaymentStatisticsList',
@@ -157,6 +132,9 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
treeDepartData: [], treeDepartData: [],
replaceFields: {
value: 'orgCode'
},
columns: [ columns: [
{ {
title: '序号', title: '序号',
@@ -168,37 +146,25 @@ export default {
return parseInt(index) + 1 return parseInt(index) + 1
} }
}, { }, {
title: '项目名称', title: '项目负责人',
align: 'center',
// width: 200,
dataIndex: 'chargeProject',
scopedSlots: { customRender: 'projectName' }
}, {
title: '负责人',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'projectName' }
}, {
title: '所属科室',
align: 'center',
width: 140,
dataIndex: 'departId',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'receivableAmount' dataIndex: 'allMoney'
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'paidAmount' dataIndex: 'comeAllMoney'
}, { }, {
title: '来款用途', title: '个人完成率',
align: 'center', align: 'center',
dataIndex: 'chargeUse_dictText', dataIndex: 'finishRate',
width: 140 width: 140
} }
], ],
@@ -207,46 +173,42 @@ export default {
title: '序号', title: '序号',
dataIndex: 'title', dataIndex: 'title',
key: 'rowIndex', key: 'rowIndex',
width: 120, width: 60,
align: 'center' align: 'center'
}, { }, {
title: '项目名称', title: '项目负责人',
align: 'center',
// width: 200,
dataIndex: 'chargeProject',
scopedSlots: { customRender: 'text' }
}, {
title: '负责人',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, {
title: '所属科室',
align: 'center',
width: 140,
dataIndex: 'departId',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'receivableAmount' dataIndex: 'allMoney'
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 140, width: 140,
dataIndex: 'paidAmount' dataIndex: 'comeAllMoney'
}, { }, {
title: '来款用途', title: '个人完成率',
align: 'center', align: 'center',
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_dictText',
width: 140 width: 140
} }
], ],
footerDataSource: [], footerDataSource: [],
// 给定当年作为来款年份默认查询条件
queryParam: {
year: new Date().getFullYear().toString()
},
lastQueryParam: {
year: new Date().getFullYear().toString()
},
url: { url: {
list: '' list: '/statistics/principalPeople/list',
exportXlsUrl: '/statistics/principalPeople/excel'
} }
} }
}, },
@@ -274,9 +236,12 @@ export default {
true true
) )
}, },
goDetail(id) { goDetail(record) {
this.$router.push({ this.$router.push({
path: '/statisticalReport/departmentStatistics/IndividualPaymentStatisticsDetail' path: '/statisticalReport/departmentStatistics/IndividualPaymentStatisticsDetail',
query: {
principalId: record.principalId
}
}) })
}, },
/** /**
@@ -296,6 +261,58 @@ export default {
console.log(res.message) console.log(res.message)
} }
}) })
},
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
searchReset() {
this.lastQueryParam = {
year: new Date().getFullYear().toString()
}
this.queryParam = {
year: new Date().getFullYear().toString()
}
this.loadData(1)
} }
} }
} }
@@ -330,6 +347,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
@@ -7,9 +7,14 @@
<div class="table-page-search-wrapper"> <div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row> <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"></a-input>
</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"> <a-form-item label="来款项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款项目" v-model="queryParam.contractName"></a-input> <a-input placeholder="请输入来款项目" v-model="queryParam.projectName"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -19,26 +24,37 @@
</a-col> </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"> <a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.paymentDate"></j-year-date> <j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-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 v-model="queryParam.pack"
placeholder="请选择付款状态"
dictCode="yn"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24"> <a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span> <span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></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">
<select-principal placeholder="请选择项目负责人" v-model="queryParam.principalNameId"></select-principal>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="所属科室" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-tree-select
style="width:100%"
:dropdownStyle="{ maxHeight: '200px',maxWidth:'100px','overflow-x':'hidden',' overflow-y': 'auto' }"
:treeData="treeDepartData"
:replaceFields="replaceFields"
v-model="queryParam.departCode"
placeholder="请选择科室">
</a-tree-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery"
v-has="'projectPaymentStatistics:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -49,7 +65,9 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('全所统计')"
v-has="'projectPaymentStatistics:export'">导出
</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -79,12 +97,7 @@
<j-ellipsis :value="text" :length="18"></j-ellipsis> <j-ellipsis :value="text" :length="18"></j-ellipsis>
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="goDetail(record.id)">详情</a>
</span>
<template slot="footer" v-if="dataSource.length > 0"> <template slot="footer" v-if="dataSource.length > 0">
<a-table <a-table
size="middle" size="middle"
ref="footTable" ref="footTable"
@@ -96,12 +109,6 @@
:scroll="{x: 1100}" :scroll="{x: 1100}"
class="j-table-force-nowrap footer-table"> class="j-table-force-nowrap footer-table">
<!-- 项目名称-->
<template slot="projectName" slot-scope="text, record">
<j-ellipsis :value="text" :length="18" class="primary-color"
@click="openDetailModal(record)"></j-ellipsis>
</template>
<template slot="text" slot-scope="text"> <template slot="text" slot-scope="text">
<j-ellipsis :value="text" :length="18"></j-ellipsis> <j-ellipsis :value="text" :length="18"></j-ellipsis>
</template> </template>
@@ -118,10 +125,13 @@ import IconImg from '@/assets/imgs/icon/icon_statistical_report.png'
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle' import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate' import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '@api/manage'
import SelectPrincipal from '@comp/company/SelectPrincipal'
import { queryDepartTreeList } from '@api/api'
export default { export default {
name: 'ProjectPaymentStatisticsList', name: 'ProjectPaymentStatisticsList',
components: { PageHeaderTitle, JYearDate }, components: { PageHeaderTitle, JYearDate, SelectPrincipal },
mixins: [JeroListMixin], mixins: [JeroListMixin],
data() { data() {
return { return {
@@ -135,7 +145,8 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
url: { url: {
list: '' list: '/statistics/allProjectStatistics/list',
exportXlsUrl: '/statistics/allProjectStatistics/statistics/excel'
}, },
columns: [ columns: [
{ {
@@ -147,11 +158,23 @@ export default {
customRender: function (t, r, index) { customRender: function (t, r, index) {
return parseInt(index) + 1 return parseInt(index) + 1
} }
}, {
title: '项目负责人',
align: 'center',
width: 160,
dataIndex: 'principalName',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'workGroup', dataIndex: 'projectName',
scopedSlots: { customRender: 'text' }
}, {
title: '来款单位',
align: 'center',
width: 160,
dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
@@ -169,7 +192,7 @@ export default {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
} }
], ],
@@ -180,11 +203,23 @@ export default {
dataIndex: 'title', dataIndex: 'title',
width: 100, width: 100,
align: 'center' align: 'center'
}, {
title: '项目负责人',
align: 'center',
width: 160,
dataIndex: 'principalName',
scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'workGroup', dataIndex: 'projectName',
scopedSlots: { customRender: 'text' }
}, {
title: '来款单位',
align: 'center',
width: 160,
dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
@@ -202,18 +237,50 @@ export default {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
} }
], ],
// 总计数据 // 总计数据
footerDataSource: [] footerDataSource: [],
// 给定当年作为来款年份默认查询条件
queryParam: {
year: new Date().getFullYear().toString()
},
lastQueryParam: {
year: new Date().getFullYear().toString()
},
treeDepartData: [], // 部门数据
replaceFields: {
value: 'orgCode'
},
} }
}, },
created() {
this.loadDepartTreeData()
},
mounted() { mounted() {
this.setScroll() this.setScroll()
}, },
methods: { methods: {
/**
* 获取科室(部门)数据
*/
loadDepartTreeData() {
queryDepartTreeList().then((res) => {
if (res.success) {
this.treeDepartData = []
let treeList = res.result
for (let a = 0; a < treeList.length; a++) {
let temp = treeList[a]
temp.isLeaf = temp.leaf
this.treeDepartData.push(temp)
}
} else {
console.log(res.message)
}
})
},
// 同步表与footer滚动,保留底部滚动条 // 同步表与footer滚动,保留底部滚动条
setScroll() { setScroll() {
if (this.dataSource.length === 0) { if (this.dataSource.length === 0) {
@@ -230,6 +297,58 @@ export default {
}, },
true true
) )
},
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
searchReset() {
this.lastQueryParam = {
year: new Date().getFullYear().toString()
}
this.queryParam = {
year: new Date().getFullYear().toString()
}
this.loadData(1)
} }
} }
} }
@@ -9,7 +9,7 @@
<a-row> <a-row>
<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"> <a-form-item label="来款项目" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入来款项目" v-model="queryParam.contractName"></a-input> <a-input placeholder="请输入来款项目" v-model="queryParam.projectName"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -19,21 +19,21 @@
</a-col> </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"> <a-form-item label="来款年份" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.paymentDate"></j-year-date> <j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.year"></j-year-date>
</a-form-item> </a-form-item>
</a-col> </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"> <a-form-item label="付款状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-model="queryParam.pack" <j-dict-select-tag v-model="queryParam.inAccountStatue"
placeholder="请选择付款状态" placeholder="请选择付款状态"
dictCode="yn"/> dictCode="yn"/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24"> <a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span> <span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
@@ -118,6 +118,7 @@
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle' import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate' import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '@api/manage'
export default { export default {
name: 'EnterprisePaymentStatisticsDetail', name: 'EnterprisePaymentStatisticsDetail',
@@ -134,7 +135,8 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
url: { url: {
list: '' list: '/statistics/companyComeMoney/listForDetail',
exportXlsUrl: '/statistics/companyComeMoney/excelDetail'
}, },
columns: [ columns: [
{ {
@@ -149,31 +151,31 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
dataIndex: 'workGroup', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'allMoney', dataIndex: 'chargeCompanyName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'comeAllMoney', dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'moneyRate', dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
} }
], ],
@@ -187,36 +189,43 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
dataIndex: 'workGroup', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'allMoney', dataIndex: 'chargeCompanyName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'comeAllMoney', dataIndex: 'allMoney',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'moneyRate', dataIndex: 'comeAllMoney',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款用途', title: '来款用途',
align: 'center', align: 'center',
width: 160, width: 160,
dataIndex: 'chargeUse_dictText', dataIndex: 'chargeUse_text',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
} }
], ],
// 总计数据 // 总计数据
footerDataSource: [] footerDataSource: [],
// 给定当年作为来款年份默认查询条件
queryParam: {
year: new Date().getFullYear().toString()
},
lastQueryParam: {
year: new Date().getFullYear().toString()
},
} }
}, },
mounted() { mounted() {
@@ -239,7 +248,61 @@ export default {
}, },
true true
) )
} },
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
// 企业id
params.chargeCompanyTemporaryId = this.$route.query.chargeCompanyId
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
searchReset() {
this.lastQueryParam = {
year: new Date().getFullYear().toString()
}
this.queryParam = {
year: new Date().getFullYear().toString()
}
this.loadData(1)
},
} }
} }
</script> </script>
@@ -273,6 +336,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
@@ -8,8 +8,8 @@
<a-form layout="inline" @keyup.enter.native="searchQuery"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row> <a-row>
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24"> <a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
<a-form-item label="来款企业" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="来款企业" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom: -1px">
<a-input placeholder="请输入来款企业" v-model="queryParam.workGroup"></a-input> <company-select :can-add="false" placeholder="请选择来款企业" v-model="queryParam.chargeCompany"></company-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24"> <a-col :xxl="4" :xl="10" :lg="12" :md="12" :sm="24">
@@ -19,14 +19,14 @@
</a-col> </a-col>
<a-col :xl="10" :lg="11" :md="12" :sm="24"> <a-col :xl="10" :lg="11" :md="12" :sm="24">
<a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="应收款项" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoney" class="query-group-cust"></a-input>
<span class="query-group-split-cust"></span> <span class="query-group-split-cust"></span>
<a-input placeholder="请输入应收款项" v-model="queryParam.contractName" class="query-group-cust"></a-input> <a-input placeholder="请输入应收款项" v-model="queryParam.allMoneyTwo" class="query-group-cust"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'companyPaymentStatistics:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -37,7 +37,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('全所统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('企业来款统计')" v-has="'companyPaymentStatistics:export'">导出</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -68,7 +68,7 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="goDetail(record.id)">详情</a> <a @click="goDetail(record)" v-has="'companyPaymentStatistics:detail'">详情</a>
</span> </span>
<template slot="footer" v-if="dataSource.length > 0"> <template slot="footer" v-if="dataSource.length > 0">
@@ -93,6 +93,7 @@
<template slot="text" slot-scope="text"> <template slot="text" slot-scope="text">
<j-ellipsis :value="text" :length="18"></j-ellipsis> <j-ellipsis :value="text" :length="18"></j-ellipsis>
</template> </template>
</a-table> </a-table>
</template> </template>
@@ -107,10 +108,12 @@ import IconImg from '@/assets/imgs/icon/icon_statistical_report.png'
import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle' import PageHeaderTitle from '../../../components/layouts/PageHeaderTitle'
import { JeroListMixin } from '../../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin'
import JYearDate from '../../../components/jero/JYearDate' import JYearDate from '../../../components/jero/JYearDate'
import { getAction } from '@api/manage'
import CompanySelect from '@comp/company/CompanySelect'
export default { export default {
name: 'EnterprisePaymentStatisticsList', name: 'EnterprisePaymentStatisticsList',
components: { PageHeaderTitle, JYearDate }, components: { PageHeaderTitle, JYearDate, CompanySelect },
mixins: [JeroListMixin], mixins: [JeroListMixin],
data() { data() {
return { return {
@@ -124,7 +127,8 @@ export default {
sm: { span: 10 } sm: { span: 10 }
}, },
url: { url: {
list: '' list: '/statistics/companyComeMoney/list',
exportXlsUrl: ''
}, },
columns: [ columns: [
{ {
@@ -139,7 +143,7 @@ export default {
}, { }, {
title: '来款企业', title: '来款企业',
align: 'center', align: 'center',
dataIndex: 'workGroup', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收总金额', title: '应收总金额',
@@ -172,7 +176,7 @@ export default {
}, { }, {
title: '来款企业', title: '来款企业',
align: 'center', align: 'center',
dataIndex: 'workGroup', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收总金额', title: '应收总金额',
@@ -195,17 +199,26 @@ export default {
} }
], ],
// 总计数据 // 总计数据
footerDataSource: [] footerDataSource: [],
// 给定当年作为来款年份默认查询条件
queryParam: {
year: new Date().getFullYear().toString()
},
lastQueryParam: {
year: new Date().getFullYear().toString()
},
} }
}, },
mounted() { mounted() {
this.setScroll() this.setScroll()
}, },
methods: { methods: {
goDetail(id) { goDetail(record) {
console.log(id)
this.$router.push({ this.$router.push({
path: '/statisticalReport/enterprisePaymentStatistics/EnterprisePaymentStatisticsDetail' path: '/statisticalReport/enterprisePaymentStatistics/EnterprisePaymentStatisticsDetail',
query: {
chargeCompanyId: record.chargeCompanyTemporaryId
}
}) })
}, },
// 同步表与footer滚动,保留底部滚动条 // 同步表与footer滚动,保留底部滚动条
@@ -224,6 +237,64 @@ export default {
}, },
true true
) )
},
loadData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.ipagination.current = 1
}
let params = this.getQueryParams()//查询条件
if (params.chargeCompany) {
params.chargeCompanyId = params.chargeCompany.id
}
// 将企业信息对象从查询参数中去掉
delete params.chargeCompany
console.log(params)
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pageList.records
// this.dataSource = res.result.pageList.records
let obj = {
id: '1',
title: '总计',
allMoney: res.result.sumOfMoney.toString(),
comeAllMoney: res.result.sumOfReallyMoney.toString()
}
this.footerDataSource = [obj]
if (res.result.pageList.total) {
this.ipagination.total = res.result.pageList.total
//清空列表选中
this.onClearSelected()
} else {
this.ipagination.total = 0
}
}
if (this.dataSource.length > 0) {
this.$nextTick(() => {
this.setScroll()
})
}
if (res.code === 510) {
this.$message.warning(res.message)
}
this.loading = false
}).finally(() => {
this.loading = false
})
},
searchReset() {
this.lastQueryParam = {
year: new Date().getFullYear().toString()
}
this.queryParam = {
year: new Date().getFullYear().toString()
}
this.loadData(1)
} }
} }
} }
@@ -258,6 +329,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
@@ -343,6 +343,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
@@ -26,7 +26,7 @@
</a-col> </a-col>
<a-col :xl="4" :lg="7" :md="8" :sm="24"> <a-col :xl="4" :lg="7" :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button> <a-button type="primary" icon="search" @click="searchQuery" v-has="'workingGroupPaymentStatistics:search'">查询</a-button>
<a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button> <a-button icon="reload" @click="searchReset" class="reset-button">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -37,7 +37,7 @@
<!-- 操作按钮区域--> <!-- 操作按钮区域-->
<div class="table-operator"> <div class="table-operator">
<a-button type="primary" icon="export" @click="handleExportXls('工作组来款统计')">导出</a-button> <a-button type="primary" icon="export" @click="handleExportXls('工作组来款统计')" v-has="'workingGroupPaymentStatistics:export'">导出</a-button>
</div> </div>
<!-- 操作按钮区域-end--> <!-- 操作按钮区域-end-->
@@ -69,7 +69,7 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="goDetail(record.id)">详情</a> <a @click="goDetail(record.id)" v-has="'workingGroupPaymentStatistics:detail'">详情</a>
</span> </span>
<template slot="footer" v-if="dataSource.length > 0"> <template slot="footer" v-if="dataSource.length > 0">
@@ -210,6 +210,7 @@ export default {
width: 160 width: 160
} }
], ],
// 给定当年作为来款年份默认查询条件
queryParam: { queryParam: {
year: new Date().getFullYear().toString() year: new Date().getFullYear().toString()
}, },
@@ -332,6 +333,7 @@ export default {
.footer-table { .footer-table {
/deep/ .ant-table-tbody > tr > td { /deep/ .ant-table-tbody > tr > td {
border: none; border: none;
background-color: #F5F5F5;
} }
/deep/ .ant-table-fixed-right table { /deep/ .ant-table-fixed-right table {
+7 -7
View File
@@ -6,14 +6,14 @@
<a-card :bordered="false" style="padding: 12px 0;"> <a-card :bordered="false" style="padding: 12px 0;">
<!-- 按钮操作区域 --> <!-- 按钮操作区域 -->
<a-row style="margin-left: 14px" class="table-operator"> <a-row style="margin-left: 14px" class="table-operator">
<a-button @click="handleAdd(1)" type="primary">新增</a-button> <a-button @click="handleAdd(1)" type="primary" v-has="'sys:depart:add'">新增</a-button>
<a-button @click="handleAdd(2)" type="primary">添加下级</a-button> <a-button @click="handleAdd(2)" type="primary" v-has="'sys:depart:addLowerLevel'">添加下级</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('部门信息')">导出</a-button> <a-button type="primary" icon="download" @click="handleExportXls('部门信息')" v-has="'sys:depart:export'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
:action="importExcelUrl" @change="handleImportExcel"> :action="importExcelUrl" @change="handleImportExcel" v-has="'sys:depart:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button @click="batchDel" type="danger" icon="delete">批量删除</a-button> <a-button @click="batchDel" type="danger" icon="delete" v-has="'sys:depart:batchDel'">批量删除</a-button>
<!--<a-button @click="refresh" type="default" icon="reload" :loading="loading">刷新</a-button>--> <!--<a-button @click="refresh" type="default" icon="reload" :loading="loading">刷新</a-button>-->
</a-row> </a-row>
<div style="background: #fff;padding-left:16px;height: 100%; margin-top: 5px"> <div style="background: #fff;padding-left:16px;height: 100%; margin-top: 5px">
@@ -45,8 +45,8 @@
</span> </span>
<!--新增右键点击事件,和增加添加和删除功能--> <!--新增右键点击事件,和增加添加和删除功能-->
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item @click="handleAdd(3)" key="1">添加</a-menu-item> <a-menu-item @click="handleAdd(3)" key="1" v-has="'sys:depart:add'">添加</a-menu-item>
<a-menu-item @click="handleDelete" key="2">删除</a-menu-item> <a-menu-item @click="handleDelete" key="2" v-has="'sys:depart:del'">删除</a-menu-item>
<a-menu-item @click="closeDrop" key="3">取消</a-menu-item> <a-menu-item @click="closeDrop" key="3">取消</a-menu-item>
</a-menu> </a-menu>
</a-dropdown> </a-dropdown>
+3 -3
View File
@@ -43,7 +43,7 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :md="2" :sm="24"> <a-col :md="2" :sm="24">
<a-button style="margin-bottom: 10px" type="primary" @click="handleAdd">新增</a-button> <a-button style="margin-bottom: 10px" type="primary" @click="handleAdd" v-has="'dic:item:add'">新增</a-button>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
@@ -63,11 +63,11 @@
> >
<span slot="action" slot-scope="text, record" class="action-span-cell"> <span slot="action" slot-scope="text, record" class="action-span-cell">
<a @click="handleEdit(record)">编辑</a> <a @click="handleEdit(record)" v-has="'dic:item:edit'">编辑</a>
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">--> <!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- --> <!-- -->
<!-- </a-popconfirm>--> <!-- </a-popconfirm>-->
<a @click="handleDelete(record.id)">删除</a> <a @click="handleDelete(record.id)" v-has="'dic:item:delete'">删除</a>
</span> </span>
<template slot="text" slot-scope="text"> <template slot="text" slot-scope="text">
<span v-if="!text"></span> <span v-if="!text"></span>
+4 -4
View File
@@ -19,7 +19,7 @@
</a-col> </a-col>
<a-col :md="7" :sm="8"> <a-col :md="7" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'sys:dict:search'">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -35,9 +35,9 @@
v-has="'sys:dict:import'" @change="handleImportExcel"> v-has="'sys:dict:import'" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button type="primary" icon="sync" @click="refleshCache()">刷新缓存</a-button> <a-button type="primary" icon="sync" @click="refleshCache()" v-has="'sys:dict:refleshCache'">刷新缓存</a-button>
<a-button type="primary" icon="hdd" @click="openDeleteList">回收站</a-button> <a-button type="primary" icon="hdd" @click="openDeleteList" v-has="'sys:dict:deleteList'">回收站</a-button>
</div> </div>
<a-table <a-table
@@ -55,7 +55,7 @@
<a-icon type="edit"/> <a-icon type="edit"/>
编辑 编辑
</a> </a>
<a @click="editDictItem(record)"><a-icon type="setting"/> 字典配置</a> <a @click="editDictItem(record)" v-has="'sys:dict:editDictItem'"><a-icon type="setting"/> 字典配置</a>
<!-- <a-popconfirm title="确定删除吗?" @confirm="() =>handleDelete(record.id)">--> <!-- <a-popconfirm title="确定删除吗?" @confirm="() =>handleDelete(record.id)">-->
<!-- </a-popconfirm>\--> <!-- </a-popconfirm>\-->
+1 -1
View File
@@ -40,7 +40,7 @@
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<a-button type="primary" style="left: 10px" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" style="left: 10px" @click="searchQuery" icon="search" v-has="'sys:log:search'">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" <a-button type="primary" @click="searchReset" icon="reload"
style="margin-left: 8px;left: 10px">重置</a-button> style="margin-left: 8px;left: 10px">重置</a-button>
</a-col> </a-col>
+4 -4
View File
@@ -14,7 +14,7 @@
</a-col> </a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24"> <a-col :md="12" :sm="24">
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px" v-has="'sys:role:search'">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</a-col> </a-col>
</span> </span>
@@ -24,8 +24,8 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator" style="margin: 5px 0 10px 2px"> <div class="table-operator" style="margin: 5px 0 10px 2px">
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'sys:role:add'">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'sys:role:add'">新增</a-button>
<a-button @click="handleAddLowerLevel" type="primary" icon="plus">添加下级</a-button> <a-button @click="handleAddLowerLevel" type="primary" icon="plus" v-has="'sys:role:addLowerLevel'">添加下级</a-button>
<a-button @click="batchDel" type="danger" icon="delete">批量删除</a-button> <a-button @click="batchDel" type="danger" icon="delete" v-has="'sys:role:batchDel'">批量删除</a-button>
</div> </div>
<div style="margin-top: 15px"> <div style="margin-top: 15px">
<a-table <a-table
@@ -43,7 +43,7 @@
@expandedRowsChange="handleExpandedRowsChange" @expandedRowsChange="handleExpandedRowsChange"
@change="handleTableChange"> @change="handleTableChange">
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="handlePerssion(record.id)">授权</a> <a @click="handlePerssion(record.id)" v-has="'sys:role:perssion'">授权</a>
<a @click="handleEdit(record)" v-has="'sys:role:edit'">编辑</a> <a @click="handleEdit(record)" v-has="'sys:role:edit'">编辑</a>
<a @click="handleDelete(record.id)" v-has="'sys:role:del'">删除</a> <a @click="handleDelete(record.id)" v-has="'sys:role:del'">删除</a>
</span> </span>
+8 -7
View File
@@ -46,7 +46,7 @@
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button> <a-button type="primary" @click="searchQuery" icon="search" v-has="'user:search'">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</span> </span>
</a-col> </a-col>
@@ -57,13 +57,13 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator" style="border-top: 5px"> <div class="table-operator" style="border-top: 5px">
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'user:add'">新增</a-button> <a-button @click="handleAdd" type="primary" icon="plus" v-has="'user:add'">新增</a-button>
<a-button @click="downTemplate('用户导入模板')" type="primary" icon="download">下载模板</a-button> <a-button @click="downTemplate('用户导入模板')" type="primary" icon="download" v-has="'user:downTemplate'">下载模板</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel"> @change="handleImportExcel" v-has="'sys:user:import'">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
<a-button @click="handleExportXls('用户列表')" type="primary" icon="export">导出</a-button> <a-button @click="handleExportXls('用户列表')" type="primary" icon="export" v-has="'sys:user:export'">导出</a-button>
<a-button @click="batchDel" type="danger" icon="delete">批量删除</a-button> <a-button @click="batchDel" type="danger" icon="delete" v-has="'user:batchDel'">批量删除</a-button>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
@@ -86,9 +86,10 @@
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<!-- 1是启用 2是禁用 按钮需要反着来--> <!-- 1是启用 2是禁用 按钮需要反着来-->
<a @click="handleEnable(record)" <a @click="handleEnable(record)"
:class="{'color-red':record.status === 1}">{{ record.status === 1 ? '禁用' : '启用' }}</a> :class="{'color-red':record.status === 1}"
v-has="'user:enable'">{{ record.status === 1 ? '禁用' : '启用' }}</a>
<a @click="handleEdit(record)" v-has="'user:edit'">编辑</a> <a @click="handleEdit(record)" v-has="'user:edit'">编辑</a>
<a @click="resetPassword(record)">重置密码</a> <a @click="resetPassword(record)" v-has="'user:resetPassword'">重置密码</a>
<a @click="handleDelete(record.id)" v-has="'sys:user:del'">删除</a> <a @click="handleDelete(record.id)" v-has="'sys:user:del'">删除</a>
</span> </span>
<template slot="text" slot-scope="text"> <template slot="text" slot-scope="text">
+10 -1
View File
@@ -154,7 +154,6 @@ export default {
that.loginBtn = true that.loginBtn = true
that.form.validateFields([ 'username', 'password','inputCode', 'rememberMe' ], { force: true }, (err, values) => { that.form.validateFields([ 'username', 'password','inputCode', 'rememberMe' ], { force: true }, (err, values) => {
if (!err) { if (!err) {
loginParams.remember_me = values.rememberMe loginParams.remember_me = values.rememberMe
loginParams.captcha = that.inputCodeContent loginParams.captcha = that.inputCodeContent
loginParams.checkKey = that.currdatetime loginParams.checkKey = that.currdatetime
@@ -169,6 +168,16 @@ export default {
that.Login(loginParams).then(() => { that.Login(loginParams).then(() => {
this.loginSuccess() this.loginSuccess()
}).catch((err) => { }).catch((err) => {
if (err.message === 'updatePassword') {
this.$notification.error({
message: '登录失败',
description: '不能使用默认密码登录,请修改密码后登录!'
})
that.$router.push({
path: '/user/alteration'
})
return
}
if (err.code === 500) { if (err.code === 500) {
// 刷新验证码 // 刷新验证码
this.handleChangeCheckCode() this.handleChangeCheckCode()
+105 -68
View File
@@ -10,6 +10,22 @@
<div class='alteration-content'> <div class='alteration-content'>
<a-form :form="form"> <a-form :form="form">
<span class='setPassword'>设置密码</span> <span class='setPassword'>设置密码</span>
<a-row>
<a-col :span='22'>
<a-form-item
label="用户名"
:labelCol="{span: 5}"
:wrapperCol="{span: 19}"
>
<a-input
type="text"
v-decorator="['username',{ rules: validatorRules.username.rules}]"
placeholder="请输入用户名">
</a-input>
</a-form-item>
</a-col>
<a-col :span='6'></a-col>
</a-row>
<a-row> <a-row>
<a-col :span='22'> <a-col :span='22'>
<a-form-item <a-form-item
@@ -36,7 +52,7 @@
<a-input <a-input
v-decorator="['captcha', { rules: validatorRules.captcha.rules}]" v-decorator="['captcha', { rules: validatorRules.captcha.rules}]"
type="text" type="text"
placeholder="验证码"> placeholder="请输入验证码">
</a-input> </a-input>
<a-button <a-button
tabindex="-1" tabindex="-1"
@@ -55,7 +71,7 @@
:labelCol="{span: 5}" :labelCol="{span: 5}"
:wrapperCol="{span: 19}"> :wrapperCol="{span: 19}">
<a-input <a-input
placeholder="新密码" placeholder="请输入新密码"
v-decorator="['password', { rules: validatorRules.password.rules}]" v-decorator="['password', { rules: validatorRules.password.rules}]"
type="password"> type="password">
</a-input> </a-input>
@@ -70,7 +86,7 @@
:labelCol="{span: 5}" :labelCol="{span: 5}"
:wrapperCol="{span: 19}"> :wrapperCol="{span: 19}">
<a-input <a-input
placeholder="确认密码" placeholder="请输入确认密码"
v-decorator="['confirmPassword', { rules: validatorRules.confirmPassword.rules}]" v-decorator="['confirmPassword', { rules: validatorRules.confirmPassword.rules}]"
type="password" type="password"
autocomplete="false"> autocomplete="false">
@@ -99,20 +115,25 @@
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
export default { export default {
name: "Alteration", name: 'Alteration',
components: {}, components: {},
data() { data() {
return { return {
form: this.$form.createForm(this), form: this.$form.createForm(this),
loading: false, loading: false,
validatorRules: { validatorRules: {
username: {
rules: [
{ required: true, message: '请输入用户名!' }],
validateTrigger: 'blur'
},
phone: { phone: {
rules: [ rules: [
{required: true, message: '请输入手机号码!'},{validator: this.validatePhone}], { required: true, message: '请输入手机号码!' }, { validator: this.validatePhone }],
validateTrigger: 'blur' validateTrigger: 'blur'
}, },
captcha: { captcha: {
rules: [{required: true, message: '请输入短信验证码!'}], rules: [{ required: true, message: '请输入短信验证码!' }],
validateTrigger: 'blur' validateTrigger: 'blur'
}, },
password: { password: {
@@ -127,15 +148,15 @@ export default {
}, },
confirmPassword: { confirmPassword: {
rules: [ rules: [
{required: true, message: '密码不能为空!'}, { required: true, message: '密码不能为空!' },
{validator: this.handlePasswordCheck} { validator: this.handlePasswordCheck }
], ],
validateTrigger: 'blur' validateTrigger: 'blur'
}, }
}, },
state: { state: {
time: 60, time: 60,
smsSendBtn: false, smsSendBtn: false
}, },
userList: {} userList: {}
} }
@@ -148,16 +169,16 @@ export default {
if (!err) { if (!err) {
let params = {} let params = {}
console.log(values, '======values') console.log(values, '======values')
params.phone = values.phone; params.phone = values.phone
params.password = values.password; params.password = values.password
params.captcha = values.captcha; params.captcha = values.captcha
params.confirmPassword = values.confirmPassword; params.confirmPassword = values.confirmPassword
getAction("/sys/user/passwordChange", params).then((res) => { getAction('/sys/user/passwordChange', params).then((res) => {
if (res.success) { if (res.success) {
that.loading = false that.loading = false
that.$router.go(-1) that.$router.go(-1)
} else { } else {
this.passwordFailed(res.message); this.passwordFailed(res.message)
that.loading = false that.loading = false
} }
}) })
@@ -170,25 +191,25 @@ export default {
this.$router.go(-1) this.$router.go(-1)
}, },
passwordFailed(err) { passwordFailed(err) {
this.$notification[ 'error' ]({ this.$notification['error']({
message: "更改密码失败", message: '更改密码失败',
description:err, description: err,
duration: 4, duration: 4
}); })
}, },
validatePhone(rule,value,callback){ validatePhone(rule, value, callback) {
if(value){ if (value) {
var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; var myreg = /^[1][3,4,5,7,8][0-9]{9}$/
if(!myreg.test(value)){ if (!myreg.test(value)) {
callback("请输入正确的手机号") callback('请输入正确的手机号')
}else{ } else {
callback(); callback()
} }
}else{ } else {
callback() callback()
} }
}, },
handlePasswordCheck (rule, value, callback) { handlePasswordCheck(rule, value, callback) {
let password = this.form.getFieldValue('password') let password = this.form.getFieldValue('password')
if (value && password && value.trim() !== password.trim()) { if (value && password && value.trim() !== password.trim()) {
callback(new Error('两次密码不一致')) callback(new Error('两次密码不一致'))
@@ -196,70 +217,74 @@ export default {
callback() callback()
}, },
getCaptcha(e) { getCaptcha(e) {
e.preventDefault(); e.preventDefault()
let that = this; let that = this
let phone=that.form.getFieldValue("phone") let phone = that.form.getFieldValue('phone')
if(!phone){ if (!phone) {
this.cmsFailed("手机号不能为空!"); this.cmsFailed('手机号不能为空!')
return; return
} }
this.state.smsSendBtn = true; this.state.smsSendBtn = true
let interval = window.setInterval(() => { let interval = window.setInterval(() => {
if (that.state.time-- <= 0) { if (that.state.time-- <= 0) {
that.state.time = 60; that.state.time = 60
that.state.smsSendBtn = false; that.state.smsSendBtn = false
window.clearInterval(interval); window.clearInterval(interval)
} }
}, 1000); }, 1000)
const hide = this.$message.loading('验证码发送中..', 0); const hide = this.$message.loading('验证码发送中..', 0)
let smsParams = { let smsParams = {
mobile: phone, mobile: phone,
smsmode: "2" smsmode: '2'
}; }
postAction("/sys/sms", smsParams).then(res => { postAction('/sys/sms', smsParams).then(res => {
if (!res.success) { if (!res.success) {
setTimeout(hide, 1); setTimeout(hide, 1)
this.cmsFailed(res.message); this.cmsFailed(res.message)
} }
setTimeout(hide, 500); setTimeout(hide, 500)
}) })
}, },
cmsFailed(err) { cmsFailed(err) {
this.$notification['error']({ this.$notification['error']({
message: "验证错误", message: '验证错误',
description: err, description: err,
duration: 4, duration: 4
}); })
} }
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-card{ /deep/ .ant-card {
width: 100%; width: 100%;
} }
/deep/.ant-card-body{
/deep/ .ant-card-body {
padding: 0 !important; padding: 0 !important;
height: 100%; height: 100%;
background: #F0F2F5; background: #F0F2F5;
} }
.alteration-center{
.alteration-center {
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: #F0F2F5; background: #F0F2F5;
} }
.alteration-content{
.alteration-content {
margin: auto; margin: auto;
width: 1000px; width: 1000px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background: #fff; background: #fff;
.setPassword{
.setPassword {
font-size: 26px; font-size: 26px;
display: block; display: block;
background: #fff; background: #fff;
@@ -268,28 +293,33 @@ export default {
margin-top: 30px; margin-top: 30px;
} }
} }
/deep/.ant-form{
/deep/ .ant-form {
width: 500px; width: 500px;
height: 500px;
} }
.alteration-head{
.alteration-head {
position: absolute; position: absolute;
top: 0; top: 0;
width: 100%; width: 100%;
background: #069F99; background: #069F99;
height: 60px; height: 60px;
} }
.logo { .logo {
box-shadow: none !important; box-shadow: none !important;
transition: background 300ms; transition: background 300ms;
height: 60px; height: 60px;
line-height: 60px; line-height: 60px;
padding-left: 12px; padding-left: 12px;
a { a {
color: white; color: white;
&:hover { &:hover {
color: rgba(255, 255, 255, 0.8); color: rgba(255, 255, 255, 0.8);
} }
h1 { h1 {
margin-left: 12px; margin-left: 12px;
color: #fff; color: #fff;
@@ -299,35 +329,42 @@ export default {
} }
} }
.alteration-content{ .alteration-content {
} }
/deep/.ant-row{
/deep/ .ant-row {
margin-bottom: 20px !important; margin-bottom: 20px !important;
height: 60px; height: 60px;
} }
/deep/.ant-form-item-label{
/deep/ .ant-form-item-label {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
} }
/deep/.ant-input{
/deep/ .ant-input {
border-radius: 30px; border-radius: 30px;
height: 50px; height: 50px;
border: 1px solid #E6E3E3; border: 1px solid #E6E3E3;
} }
.btn{
/deep/button{ .btn {
/deep/ button {
border-radius: 30px; border-radius: 30px;
margin: 0 20px; margin: 0 20px;
} }
.ant-btn-primary{
.ant-btn-primary {
background: #069F99; background: #069F99;
border: none; border: none;
} }
} }
.captcha{
.captcha {
position: relative; position: relative;
/deep/button{
/deep/ button {
border: none; border: none;
color: #069F99; color: #069F99;
position: absolute; position: absolute;