|
|
|
@ -32,19 +32,20 @@ |
|
|
|
<el-form-item prop="projectManagerName"> |
|
|
|
<span v-if="isProjectTeamFieldDisabled('projectManagerList')" slot="label">项目经理</span> |
|
|
|
<span v-else slot="label" @click="managerChooseModal()"><a herf="#">项目经理</a></span> |
|
|
|
<el-input v-model="dataForm.projectManagerName" readonly ></el-input> |
|
|
|
<el-input v-model="dataForm.projectManagerName" readonly :disabled="isProjectTeamFieldDisabled('projectManagerList')"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item prop="projectOwnerName" :rules="projectRole.projectOwnerName"> |
|
|
|
<span v-if="isProjectTeamFieldDisabled('projectOwnerList')" slot="label">项目审批人</span> |
|
|
|
<span v-else slot="label" @click="ownerChooseModal()"><a herf="#">项目审批人</a></span> |
|
|
|
<el-input v-model="dataForm.projectOwnerName" readonly></el-input> |
|
|
|
<el-input v-model="dataForm.projectOwnerName" readonly :disabled="isProjectTeamFieldDisabled('projectOwnerList')"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item prop="customerId"> |
|
|
|
<span slot="label" style="" @click="!isProjectFieldDisabled('customerId') && getBaseList(102,1)"><a herf="#">客户</a></span> |
|
|
|
<span v-if="isProjectFieldDisabled('customerId')" slot="label">客户</span> |
|
|
|
<span v-else slot="label" @click="getBaseList(102,1)"><a herf="#">客户</a></span> |
|
|
|
<el-input v-model="dataForm.customerId" @blur="getCustomerName(1)" :disabled="isProjectFieldDisabled('customerId')"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -70,9 +71,16 @@ |
|
|
|
<el-input v-model="dataForm.customerProjectNo" :disabled="isProjectFieldDisabled('customerProjectNo')" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item class="project-amount-form-item"> |
|
|
|
<span slot="label" class="project-amount-label">项目年销售额CNY(K)</span> |
|
|
|
<template slot="label"> |
|
|
|
<span>项目年销售额CNY(K)</span> |
|
|
|
<el-button |
|
|
|
v-if="authProjectAmount" |
|
|
|
style="margin-left: 2px;width: 83px;line-height: 0.5;font-size: 10px;" |
|
|
|
type="primary" |
|
|
|
@click="openProjectAmountDialog">编辑</el-button> |
|
|
|
</template> |
|
|
|
<el-input v-model="dataForm.projectAmount" :disabled="isProjectFieldDisabled('projectAmount')" @input="dataForm.projectAmount = dataForm.projectAmount.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace(/^(\d+\.\d{1,6}).*$/, '$1')"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -92,7 +100,8 @@ |
|
|
|
<el-input type="textarea" resize="none" :autosize="{minRows: 2, maxRows: 2}" v-model="dataForm.remark" :disabled="isProjectFieldDisabled('remark')" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="userRoleName" :rules="projectRole.userRoleName"> |
|
|
|
<span slot="label" style="" @click="!isProjectFieldDisabled('userRoleName') && userRollModal()"><a herf="#">项目权限</a></span> |
|
|
|
<span v-if="isProjectFieldDisabled('userRoleName')" slot="label">项目权限</span> |
|
|
|
<span v-else slot="label" @click="userRollModal()"><a herf="#">项目权限</a></span> |
|
|
|
<el-input v-model="dataForm.userRoleName" :disabled="isProjectFieldDisabled('userRoleName')" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
@ -104,6 +113,22 @@ |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog width="500px" title="项目年销售额CNY(K)" :close-on-click-modal="false" :visible.sync="projectAmountFlag" v-drag> |
|
|
|
<el-form label-position="top"> |
|
|
|
<el-form-item label="项目年销售额CNY(K)"> |
|
|
|
<el-input |
|
|
|
v-model="projectAmountForm.projectAmount" |
|
|
|
@input="projectAmountForm.projectAmount = String(projectAmountForm.projectAmount || '').replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace(/^(\d+\.\d{1,6}).*$/, '$1')"> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-footer style="height:35px;margin-top:50px;text-align:center"> |
|
|
|
<el-button type="primary" @click="refreshProjectAmount">刷新</el-button> |
|
|
|
<el-button type="primary" :loading="projectAmountLoading" @click="saveProjectAmount">保存</el-button> |
|
|
|
<el-button type="primary" @click="projectAmountFlag = false">取消</el-button> |
|
|
|
</el-footer> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<el-dialog title="驳回" top="30vh" :close-on-click-modal="false" :visible.sync="submitModalFlag" width="500px"> |
|
|
|
<el-form label-position="top"> |
|
|
|
<el-form-item label="驳回意见"> |
|
|
|
@ -266,6 +291,7 @@ |
|
|
|
searchSelectionUserRole, |
|
|
|
saveProjectInfo, |
|
|
|
submitProjectInfo, |
|
|
|
updateProjectAmount, |
|
|
|
} from "@/api/project/project.js" |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist' |
|
|
|
import DictDataSelect from "../../sys/dict-data-select.vue"; |
|
|
|
@ -310,6 +336,12 @@ |
|
|
|
menuId: '101002001', |
|
|
|
authSubmit: false, |
|
|
|
authReject: false, |
|
|
|
authProjectAmount: false, |
|
|
|
projectAmountFlag: false, |
|
|
|
projectAmountLoading: false, |
|
|
|
projectAmountForm: { |
|
|
|
projectAmount: '' |
|
|
|
}, |
|
|
|
superAdmin: false, |
|
|
|
createBy2: this.$store.state.user.name, |
|
|
|
operatorList:[], |
|
|
|
@ -413,6 +445,7 @@ |
|
|
|
this.menuId = (this.$route.meta && this.$route.meta.menuId) || this.menuId |
|
|
|
this.authSubmit = isAuth(this.menuId + ':submit') |
|
|
|
this.authReject = isAuth(this.menuId + ':reject') |
|
|
|
this.authProjectAmount = isAuth(this.menuId + ':projectAmount') |
|
|
|
checkSuperAdmin().then(({data}) => { |
|
|
|
this.superAdmin = !!(data && data.superAdmin) |
|
|
|
}) |
|
|
|
@ -955,6 +988,60 @@ |
|
|
|
this.$refs.saveForm.resetFields(); |
|
|
|
}, |
|
|
|
|
|
|
|
openProjectAmountDialog () { |
|
|
|
this.$set(this.projectAmountForm, 'projectAmount', this.dataForm.projectAmount == null ? '' : this.dataForm.projectAmount) |
|
|
|
this.projectAmountFlag = true |
|
|
|
}, |
|
|
|
refreshProjectAmount () { |
|
|
|
if (!this.dataForm.id) { |
|
|
|
this.$set(this.projectAmountForm, 'projectAmount', this.dataForm.projectAmount == null ? '' : this.dataForm.projectAmount) |
|
|
|
return |
|
|
|
} |
|
|
|
projectInfoSearch({ |
|
|
|
page: 1, |
|
|
|
limit: 10, |
|
|
|
id: this.dataForm.id, |
|
|
|
menuId: this.menuId, |
|
|
|
userId: this.$store.state.user.name |
|
|
|
}).then(({data}) => { |
|
|
|
if (data && data.page && data.page.list && data.page.list.length > 0) { |
|
|
|
this.$set(this.projectAmountForm, 'projectAmount', data.page.list[0].projectAmount == null ? '' : data.page.list[0].projectAmount) |
|
|
|
} else { |
|
|
|
this.$message.error((data && data.msg) || '刷新失败') |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
this.$message.error('刷新失败') |
|
|
|
}) |
|
|
|
}, |
|
|
|
saveProjectAmount () { |
|
|
|
const amount = this.projectAmountForm.projectAmount |
|
|
|
if (!this.dataForm.id) { |
|
|
|
this.$set(this.dataForm, 'projectAmount', amount) |
|
|
|
this.projectAmountFlag = false |
|
|
|
this.$message.success('暂存成功,保存单据后写入数据库') |
|
|
|
return |
|
|
|
} |
|
|
|
this.projectAmountLoading = true |
|
|
|
updateProjectAmount({ |
|
|
|
site: this.dataForm.site, |
|
|
|
projectId: this.dataForm.projectId, |
|
|
|
projectAmount: amount === '' ? null : amount |
|
|
|
}).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$set(this.dataForm, 'projectAmount', amount) |
|
|
|
this.projectAmountFlag = false |
|
|
|
this.$message.success('操作成功') |
|
|
|
this.$emit('refreshDataList', this.dataForm.projectId) |
|
|
|
} else { |
|
|
|
this.$message.error((data && data.msg) || '保存失败') |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
this.$message.error('保存失败') |
|
|
|
}).finally(() => { |
|
|
|
this.projectAmountLoading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
isCurrentApprover () { |
|
|
|
return this.superAdmin || (this.dataForm.createBy2 && String(this.dataForm.createBy2).split(';').includes(this.createBy2)) |
|
|
|
}, |
|
|
|
@ -1255,12 +1342,10 @@ |
|
|
|
|
|
|
|
.project-amount-form-item .el-form-item__label { |
|
|
|
overflow: visible; |
|
|
|
} |
|
|
|
|
|
|
|
.project-amount-label { |
|
|
|
display: inline-block; |
|
|
|
width: 160px; |
|
|
|
height: auto; |
|
|
|
line-height: 22px; |
|
|
|
white-space: nowrap; |
|
|
|
width: auto !important; |
|
|
|
} |
|
|
|
|
|
|
|
</style> |