Browse Source

更新

master
常熟吴彦祖 3 weeks ago
parent
commit
3ca621bafb
  1. 31
      src/views/modules/base/propertiesItem/propertiesModel.vue
  2. 2
      src/views/modules/srmSupplier/supplierList.vue
  3. 130
      src/views/modules/sys/department.vue

31
src/views/modules/base/propertiesItem/propertiesModel.vue

@ -19,14 +19,11 @@
<el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option> <el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="'状态'">
<!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
<!-- <el-option label="全部" value=""></el-option>-->
<!-- <el-option label="是" value="Y"></el-option>-->
<!-- <el-option label="否" value="N"></el-option>-->
<!-- </el-select>-->
<dict-data-select v-model="searchData.active" clearable dict-type="sys_status"
:use-default-value="false"></dict-data-select>
<el-form-item :label="'是否在用'">
<el-select filterable v-model="searchData.active" clearable style="width: 120px">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button @click="getDataList()">查询</el-button> <el-button @click="getDataList()">查询</el-button>
@ -95,7 +92,7 @@
<span v-if="item.columnImage"><img :src="row[item.columnProp]" style="width: 100px; height: 80px"/></span> <span v-if="item.columnImage"><img :src="row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</div> </div>
<span v-else <span v-else
:style="{color:row.active === 'Y'?'#67C23A':'red'}">{{ row.active === 'Y' ? '启用' : '停用' }}</span>
:style="{color:row.active === 'Y' ? '#67C23A' : '#F56C6C'}">{{ row.active || '' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -147,9 +144,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态:" prop="active">
<dict-data-select v-model="modalData.active" clearable dict-type="sys_status"
:use-default-value="false"></dict-data-select>
<el-form-item label="是否在用:" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -393,12 +392,8 @@ import {
} from "@/api/base/properties.js" } from "@/api/base/properties.js"
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js' import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
import DictDataSelect from "../../sys/dict-data-select.vue";
export default { export default {
components: { components: {
DictDataSelect,
Chooselist Chooselist
}, },
watch: { watch: {
@ -538,7 +533,7 @@ export default {
columnProp: 'active', columnProp: 'active',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: '状态',
columnLabel: '是否在用',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -968,7 +963,7 @@ export default {
return false return false
} }
if (this.modalData.active == '' || this.modalData.active == null) { if (this.modalData.active == '' || this.modalData.active == null) {
this.$alert('选择状态!', '错误', {
this.$alert('请选择是否在用!', '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
}) })
return false return false

2
src/views/modules/srmSupplier/supplierList.vue

@ -1153,7 +1153,7 @@ export default {
supplierNo: '', supplierNo: '',
supplierName: '', supplierName: '',
supplierDocType: '', supplierDocType: '',
active: '',
active: 'Y',
supplierGroup:'', supplierGroup:'',
abc: '', abc: '',
sourcingStaff: '', sourcingStaff: '',

130
src/views/modules/sys/department.vue

@ -2,18 +2,18 @@
<div class="mod-config"> <div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item :label="'DepartmentId'">
<el-form-item :label="'部门编码'">
<el-input v-model="searchData.departmentId" style="width: 120px"></el-input> <el-input v-model="searchData.departmentId" style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'DepartmentName'">
<el-form-item :label="'部门名称'">
<el-input v-model="searchData.departmentName" style="width: 120px"></el-input> <el-input v-model="searchData.departmentName" style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item :label="'BU'">--> <!-- <el-form-item :label="'BU'">-->
<!-- <el-input v-model="searchData.buNo" style="width: 120px" placeholder="BU"></el-input>--> <!-- <el-input v-model="searchData.buNo" style="width: 120px" placeholder="BU"></el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item :label="' '"> <el-form-item :label="' '">
<el-button v-if="!authSearch" @click="getDataList()">Query</el-button>
<el-button v-if="!authSave" type="primary" @click="addModal()">Add</el-button>
<el-button v-if="!authSearch" @click="getDataList()">查询</el-button>
<el-button v-if="!authSave" type="primary" @click="addModal()">新增</el-button>
<download-excel <download-excel
:fields="fields()" :fields="fields()"
:data="exportData" :data="exportData"
@ -26,7 +26,7 @@
:before-finish="finishDownload" :before-finish="finishDownload"
worksheet="导出信息" worksheet="导出信息"
class="el-button el-button--primary el-button--medium"> class="el-button el-button--primary el-button--medium">
{{ "Export" }}
{{ "导出" }}
</download-excel> </download-excel>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -60,17 +60,17 @@
header-align="center" header-align="center"
align="center" align="center"
width="220" width="220"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!authUpdate"> <span v-if="!authUpdate">
<a type="text" size="small" @click="updateModal(scope.row)">Edit</a>
<a type="text" size="small" @click="updateModal(scope.row)">编辑</a>
<span v-if="!authDelete || isAuth('sys:user:save')"> | </span> <span v-if="!authDelete || isAuth('sys:user:save')"> | </span>
</span> </span>
<span v-if="!authDelete"> <span v-if="!authDelete">
<a type="text" size="small" @click="deleteDepartment(scope.row)">Delete</a>
<span v-if="isAuth('sys:user:save')"> | </span>
<a type="text" size="small" @click="deleteDepartment(scope.row)">删除</a>
<span > | </span>
</span> </span>
<a v-if="isAuth('sys:user:save')" type="text" size="small" @click.stop="onAddMemberClick(scope.row)">Add Member</a>
<a type="text" size="small" @click.stop="onAddMemberClick(scope.row)">新增成员</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -105,16 +105,24 @@
header-align="center" header-align="center"
align="center" align="center"
width="130" width="130"
label="Actions">
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="openEditMember(scope.row)">edit</a>
<a type="text" size="small" style="margin-left: 8px" @click="removeMember(scope.row)">delete</a>
<a type="text" size="small" @click="openEditMember(scope.row)">编辑</a>
<a type="text" size="small" style="margin-left: 8px" @click="removeMember(scope.row)">删除</a>
</template>
</el-table-column>
<el-table-column prop="username" header-align="center" align="center" min-width="180" label="用户名">
<template slot-scope="scope">
<span>{{ formatUserWithDisplay(scope.row.username, scope.row.userDisplay) }}</span>
</template>
</el-table-column>
<el-table-column prop="jobTitle" header-align="center" align="left" min-width="120" label="岗位" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptManagerFlag" header-align="center" align="center" width="100" label="是否部门负责人"></el-table-column>
<el-table-column prop="superiorUsername" header-align="center" align="center" min-width="180" label="上级">
<template slot-scope="scope">
<span>{{ formatUserWithDisplay(scope.row.superiorUsername, scope.row.superiorUserDisplay) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="username" header-align="center" align="center" min-width="120" label="UserName"></el-table-column>
<el-table-column prop="jobTitle" header-align="center" align="left" min-width="120" label="Job Title" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptManagerFlag" header-align="center" align="center" width="100" label="Dept Manager"></el-table-column>
<el-table-column prop="superiorUsername" header-align="center" align="center" min-width="120" label="Superior"></el-table-column>
</el-table> </el-table>
<el-dialog <el-dialog
@ -127,47 +135,47 @@
<el-form :model="memberForm" label-position="top" size="small" style="margin-left: 7px; margin-top: -5px;"> <el-form :model="memberForm" label-position="top" size="small" style="margin-left: 7px; margin-top: -5px;">
<el-form-item v-if="memberFormMode === 'add'" required> <el-form-item v-if="memberFormMode === 'add'" required>
<span slot="label"> <span slot="label">
<a class="customer-a" @click.prevent="openMemberUserChooser">UserName</a>
<a class="customer-a" @click.prevent="openMemberUserChooser">用户名</a>
</span> </span>
<el-input v-model="memberForm.username" readonly placeholder="" style="width: 100%"></el-input> <el-input v-model="memberForm.username" readonly placeholder="" style="width: 100%"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-else label="UserName">
<el-form-item v-else label="用户名">
<el-input v-model="memberForm.username" disabled style="width: 100%"></el-input> <el-input v-model="memberForm.username" disabled style="width: 100%"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Job Title">
<el-form-item label="岗位">
<el-input v-model="memberForm.jobTitle" clearable style="width: 100%"></el-input> <el-input v-model="memberForm.jobTitle" clearable style="width: 100%"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Dept Manager">
<el-form-item label="是否部门负责人">
<el-select v-model="memberForm.deptManagerFlag" placeholder="" style="width: 100%"> <el-select v-model="memberForm.deptManagerFlag" placeholder="" style="width: 100%">
<el-option label="No" value="N"></el-option>
<el-option label="Yes" value="Y"></el-option>
<el-option label="" value="N"></el-option>
<el-option label="" value="Y"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="Superior">
<el-select v-model="memberForm.superiorUsername" clearable filterable placeholder="Optional" style="width: 100%">
<el-form-item label="上级">
<el-select v-model="memberForm.superiorUsername" clearable filterable placeholder="选填" style="width: 100%">
<el-option <el-option
v-for="u in superiorOptions" v-for="u in superiorOptions"
:key="u"
:label="u"
:value="u">
:key="u.value"
:label="u.label"
:value="u.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:40px;margin-top: 15px;text-align:center"> <el-footer style="height:40px;margin-top: 15px;text-align:center">
<el-button type="primary" @click="submitMember">Save</el-button>
<el-button type="primary" @click="memberDialogVisible = false">Cancel</el-button>
<el-button type="primary" @click="submitMember">保存</el-button>
<el-button type="primary" @click="memberDialogVisible = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<choose-list-eam ref="memberBaseList" @getBaseData="getMemberBaseData"></choose-list-eam> <choose-list-eam ref="memberBaseList" @getBaseData="getMemberBaseData"></choose-list-eam>
<el-dialog title="Department" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="450px">
<el-dialog title="部门" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="450px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="Department Id" prop="departmentId" :rules="rules.departmentIdType">
<el-form-item label="部门编码" prop="departmentId" :rules="rules.departmentIdType">
<el-input v-model="modalData.departmentId" :disabled="modalDisableFlag" style="width: 140px"></el-input> <el-input v-model="modalData.departmentId" :disabled="modalDisableFlag" style="width: 140px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="Department Name" prop="departmentName" style="margin-left: 15px" :rules="rules.departmentNameType">
<el-form-item label="部门名称" prop="departmentName" style="margin-left: 15px" :rules="rules.departmentNameType">
<el-input v-model="modalData.departmentName" style="width: 230px"></el-input> <el-input v-model="modalData.departmentName" style="width: 230px"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -191,8 +199,8 @@
--> -->
</el-form> </el-form>
<el-footer style="height:40px;margin-top: 15px;text-align:center"> <el-footer style="height:40px;margin-top: 15px;text-align:center">
<el-button type="primary" @click="saveData()">Save</el-button>
<el-button type="primary" @click="modalFlag = false">Cancel</el-button>
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
@ -315,7 +323,7 @@ export default {
columnProp: 'departmentId', columnProp: 'departmentId',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: 'Department Id',
columnLabel: '部门编码',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -333,7 +341,7 @@ export default {
columnProp: 'departmentName', columnProp: 'departmentName',
headerAlign: "center", headerAlign: "center",
align: "left", align: "left",
columnLabel: 'Department Name',
columnLabel: '部门名称',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -388,7 +396,7 @@ export default {
columnProp: 'createDate', columnProp: 'createDate',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: 'Create Date',
columnLabel: '创建日期',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -406,7 +414,7 @@ export default {
columnProp: 'createBy', columnProp: 'createBy',
headerAlign: "center", headerAlign: "center",
align: "left", align: "left",
columnLabel: 'Creator',
columnLabel: '创建人',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -424,7 +432,7 @@ export default {
columnProp: 'updateDate', columnProp: 'updateDate',
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
columnLabel: 'Update Date',
columnLabel: '更新日期',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -442,7 +450,7 @@ export default {
columnProp: 'updateBy', columnProp: 'updateBy',
headerAlign: "center", headerAlign: "center",
align: "left", align: "left",
columnLabel: 'Update By',
columnLabel: '更新人',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -498,8 +506,11 @@ export default {
} }
const self = (this.memberForm.username || '').trim().toLowerCase() const self = (this.memberForm.username || '').trim().toLowerCase()
return this.memberList return this.memberList
.map(r => r.username)
.filter(u => u && u.trim().toLowerCase() !== self)
.filter(r => (r.username || '').trim() !== '' && (r.username || '').trim().toLowerCase() !== self)
.map(r => ({
value: r.username,
label: this.formatUserWithDisplay(r.username, r.userDisplay)
}))
} }
}, },
@ -530,6 +541,13 @@ export default {
methods: { methods: {
isAuth, isAuth,
formatUserWithDisplay (username, userDisplay) {
const u = (username || '').trim()
const d = (userDisplay || '').trim()
if (!u) return ''
if (!d) return u
return `${u}(${d})`
},
clearDeptMemberSelection () { clearDeptMemberSelection () {
this.currentDept = null this.currentDept = null
this.memberList = [] this.memberList = []
@ -583,11 +601,11 @@ export default {
}, },
openAddMember () { openAddMember () {
if (!this.currentDept) { if (!this.currentDept) {
this.$message.warning('Please select a department first')
this.$message.warning('请先选择部门')
return return
} }
this.memberFormMode = 'add' this.memberFormMode = 'add'
this.memberDialogTitle = 'Add Member'
this.memberDialogTitle = '新增成员'
this.memberForm = { this.memberForm = {
username: '', username: '',
jobTitle: '', jobTitle: '',
@ -599,7 +617,7 @@ export default {
openEditMember (row) { openEditMember (row) {
if (!this.currentDept) return if (!this.currentDept) return
this.memberFormMode = 'edit' this.memberFormMode = 'edit'
this.memberDialogTitle = 'Edit Member'
this.memberDialogTitle = '编辑成员'
const dm = (row.deptManagerFlag || 'N').toString().toUpperCase() const dm = (row.deptManagerFlag || 'N').toString().toUpperCase()
this.memberForm = { this.memberForm = {
username: row.username, username: row.username,
@ -611,7 +629,7 @@ export default {
}, },
openMemberUserChooser () { openMemberUserChooser () {
if (!this.currentDept || !this.currentDept.site) { if (!this.currentDept || !this.currentDept.site) {
this.$message.warning('Please select a department first')
this.$message.warning('请先选择部门')
return return
} }
this.memberPickerActive = true this.memberPickerActive = true
@ -649,7 +667,7 @@ export default {
if (!this.currentDept) return if (!this.currentDept) return
const username = (this.memberForm.username || '').trim() const username = (this.memberForm.username || '').trim()
if (!username) { if (!username) {
this.$message.warning('Please pick an account (click Account)')
this.$message.warning('请选择用户账号(点击用户名)')
return return
} }
const payload = { const payload = {
@ -665,26 +683,26 @@ export default {
const req = this.memberFormMode === 'add' ? saveAccessDeptMember(payload) : updateAccessDeptMember(payload) const req = this.memberFormMode === 'add' ? saveAccessDeptMember(payload) : updateAccessDeptMember(payload)
req.then(({ data }) => { req.then(({ data }) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message.success('Saved')
this.$message.success('保存成功')
this.memberDialogVisible = false this.memberDialogVisible = false
this.loadMembers() this.loadMembers()
} else { } else {
this.$message.error((data && data.msg) || 'Save failed')
this.$message.error((data && data.msg) || '保存失败')
} }
}).catch(e => { }).catch(e => {
const msg = (e.response && e.response.data && e.response.data.msg) || e.message || 'Save failed'
const msg = (e.response && e.response.data && e.response.data.msg) || e.message || '保存失败'
this.$message.error(msg) this.$message.error(msg)
}) })
} }
if (this.memberFormMode === 'add') { if (this.memberFormMode === 'add') {
this.verifyUserExistsInSite(username).then(exists => { this.verifyUserExistsInSite(username).then(exists => {
if (!exists) { if (!exists) {
this.$message.warning('User does not exist or has no access to this site')
this.$message.warning('用户不存在或没有当前工厂权限')
return return
} }
const dup = this.memberList.some(m => (m.username || '').trim().toLowerCase() === username.toLowerCase()) const dup = this.memberList.some(m => (m.username || '').trim().toLowerCase() === username.toLowerCase())
if (dup) { if (dup) {
this.$message.warning('This member is already in the department')
this.$message.warning('该成员已在此部门中')
return return
} }
doSave() doSave()
@ -857,9 +875,9 @@ export default {
// //
deleteDepartment (row) { deleteDepartment (row) {
this.$confirm(`Delete this department?`, 'Prompt', {
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
this.$confirm(`确定删除该部门吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
departmentDelete(row).then(({data}) => { departmentDelete(row).then(({data}) => {

Loading…
Cancel
Save