| | |
| | | :props="defaultProps" |
| | | @change="cascaderChange" |
| | | /> |
| | | <!-- @focus="getUserOrganization"--> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="工资类型" style=" display: flex;"> |
| | | <el-select v-model="form.wagetype" :popper-append-to-body="false" filterable style="width: 200px" placeholder="请选择"> |
| | | <el-select |
| | | v-model="form.wagetype" |
| | | :popper-append-to-body="false" |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | |
| | | v-for="item in wagetypeArr" |
| | | :key="item.value" |
| | | :label="item.label" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="在职状态" style=" display: flex;"> |
| | | <el-select v-model="form.Enable" :popper-append-to-body="false" filterable style="width: 200px" placeholder="请选择"> |
| | | <el-select |
| | | v-model="form.Enable" |
| | | :popper-append-to-body="false" |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in EnableArr" |
| | | :key="item.value" |
| | |
| | | :data="tableData" |
| | | border |
| | | stripe |
| | | :height="tableHeight" |
| | | :height="tableHeight+'px'" |
| | | highlight-current-row |
| | | :style="{width: 100+'%',height:tableHeight+'px'}" |
| | | :header-cell-style="this.$headerCellStyle" |
| | |
| | | prop="RowNum" |
| | | width="50" |
| | | label="序号" |
| | | fixed |
| | | /> |
| | | <el-table-column |
| | | prop="usercode" |
| | | label="用户编码" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="username" |
| | | label="用户名称" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="password" |
| | | label="用户密码" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="org_name" |
| | | label="所属组织" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="group_name" |
| | | label="生产班组" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="wagetype" |
| | | label="工资类型" |
| | | sortable="custom" |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.wagetype==='1'">计时制</div> |
| | |
| | | <el-table-column |
| | | prop="mobile" |
| | | label="联系方式" |
| | | min-width="110" |
| | | sortable="custom" |
| | | /> |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.mobile===''">/</div> |
| | | <div v-else>{{ row.mobile }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="email" |
| | | label="电子邮箱" |
| | | sortable="custom" |
| | | /> |
| | | min-width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.email===''">/</div> |
| | | <div v-else>{{ row.email }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="" |
| | | prop="enable" |
| | | label="在职状态" |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | |
| | | <el-table-column |
| | | prop="lm_user" |
| | | label="创建人员" |
| | | width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_date" |
| | | label="创建时间" |
| | | width="200" |
| | | width="160" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="is_role" |
| | | label="关联角色" |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <i class="el-icon-share" @click="roleClick({row})" /> |
| | | <i v-if="row.is_role==='Y'" class="el-icon-share" @click="roleClick({row})" /> |
| | | <i v-if="row.is_role==='N'" class="el-icon-share" style="color: rgb(180 ,181, 185)" @click="roleClick({row})" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | |
| | | key="cascaderKey" |
| | | filterable |
| | | popper-class="elCascader" |
| | | :options="StuOrgArr" |
| | | :options="StuOrgArr2" |
| | | :props="defaultProps" |
| | | style="width: 200px;" |
| | | @change="dialogCascaderChange" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="所属班组" prop="groupcode"> |
| | | <el-select |
| | | v-model="dialogForm.groupcode" |
| | | :popper-append-to-body="false" |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in usergroupArr" |
| | | :key="item.group_code" |
| | | :label="item.group_name" |
| | | :value="item.group_code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工资类型" prop="wagetype"> |
| | | <el-select |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="联系方式"> |
| | | <el-form-item label="联系方式" prop="Mobile"> |
| | | <el-input v-model="dialogForm.Mobile" style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="电子邮箱"> |
| | | <el-form-item label="电子邮箱" prop="Email"> |
| | | <el-input v-model="dialogForm.Email" style="width: 200px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!--导入组件--> |
| | | <import-picker ref="importPickerFunc" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import ImportPicker from '@/components/ImportPicker' |
| | | |
| | | import { |
| | | AddUpdateUser, |
| | | DeleteUser, |
| | | RoleTypeAdd, |
| | | RoleTypeDelete, |
| | | SaveUserAssoctRole, |
| | | UserAssociationRole, |
| | | UserGroupAdd, |
| | |
| | | } from '@/api/jcsz' |
| | | import { getCookie } from '@/utils/auth' |
| | | import $ from 'jquery' |
| | | import clearAllChildren from '@/utils/global' |
| | | import { MesOrderStepReportSelectUserGroup } from '@/api/scgl' |
| | | |
| | | const SER_HZ = /^[\u4e00-\u9fa5]+$/ |
| | | export default { |
| | | name: 'Zzjg', |
| | | name: 'YYQD', |
| | | components: { |
| | | Pagination |
| | | Pagination, ImportPicker |
| | | }, |
| | | data() { |
| | | const validateName = (rule, value, callback) => { |
| | |
| | | } |
| | | } |
| | | } |
| | | const validateMobile = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback() |
| | | // return callback(new Error('请输入电话号码')) |
| | | } else { |
| | | const mobile = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/ // 长号 |
| | | const mobile2 = /^[0-9]{6}$/ // 短号 |
| | | if (mobile.test(value) || mobile2.test(value)) { |
| | | callback() |
| | | // return callback(new Error('电话号码不符合规则')) |
| | | } else { |
| | | return callback(new Error('电话号码不符合规则')) |
| | | // callback() |
| | | } |
| | | } |
| | | } |
| | | const validateEmail = (rule, value, callback) => { |
| | | if (!value) { |
| | | callback() |
| | | // return callback(new Error('请输入电子邮箱')) |
| | | } else { |
| | | const email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/ |
| | | if (email.test(value)) { |
| | | callback() |
| | | } else { |
| | | return callback(new Error('电子邮箱不符合规则')) |
| | | } |
| | | } |
| | | } |
| | | |
| | | return { |
| | | isFullscreen: false, |
| | | mainHeight: 0, |
| | |
| | | rows: 20 // 每页多少条 |
| | | }, |
| | | StuOrgArr: [], // 所属组织数组 |
| | | StuOrgArr2: [], // 所属组织数组 对话框 |
| | | defaultProps: { |
| | | checkStrictly: true, |
| | | value: 'code', |
| | |
| | | UserCode: '', |
| | | UserName: '', |
| | | Password: '', |
| | | Enable: '', |
| | | Enable: 'Y', |
| | | StuOrg: '', |
| | | Mobile: '', |
| | | Email: '', |
| | | groupcode: '', |
| | | Operator: '', |
| | | OperType: '', |
| | | wagetype: '' |
| | | }, |
| | | usergroupArr: [], // 生产班组数组 |
| | | wagetypeArr: [ |
| | | { value: '2', label: '计件制' }, |
| | | { value: '1', label: '计时制' } |
| | |
| | | ], |
| | | wagetype: [ |
| | | { required: true, message: '请选择工资类型', trigger: ['blur', 'change'] } |
| | | ], |
| | | groupcode: [ |
| | | { required: true, message: '请选择所属班组', trigger: ['blur', 'change'] } |
| | | ], |
| | | Mobile: [ |
| | | { required: false, validator: validateMobile, trigger: ['blur', 'change'] } |
| | | ], |
| | | Email: [ |
| | | { required: false, validator: validateEmail, trigger: ['blur', 'change'] } |
| | | ] |
| | | |
| | | }, |
| | | dialogVisibleRoles: false, |
| | | dialogFormRoles: { |
| | |
| | | page: 1, |
| | | prop: 'group_code', |
| | | order: 'desc' |
| | | }, |
| | | |
| | | title_value: '数据导入 / 用户清单', |
| | | code: '2', |
| | | shows: false |
| | | } |
| | | }, |
| | | watch: { |
| | | shows() { |
| | | if (!this.shows) { |
| | | this.getUserSearch() |
| | | } |
| | | } |
| | | }, |
| | |
| | | // 获取所属组织 |
| | | async getUserOrganization() { |
| | | const { data: res } = await UserOrganization() |
| | | this.StuOrgArr = res |
| | | this.StuOrgArr = clearAllChildren(res) |
| | | }, |
| | | // 获取所属组织对话框 |
| | | async getUserOrganization2() { |
| | | const { data: res } = await UserOrganization() |
| | | this.StuOrgArr2 = clearAllChildren(res) |
| | | }, |
| | | // 导入按钮 |
| | | upload() { |
| | | |
| | | this.shows = true |
| | | this.$refs.importPickerFunc.newDataFunc() |
| | | }, |
| | | colos() { |
| | | this.shows = false |
| | | }, |
| | | // 排序改变时 |
| | | sortChange({ column, prop, order }) { |
| | |
| | | this.form.UserCode = '' |
| | | this.form.UserName = '' |
| | | this.form.StuOrg = '' |
| | | this.form.Enable = '' |
| | | this.form.Enable = 'Y' |
| | | this.form.wagetype = '' |
| | | this.$refs.cascader.checkedValue = ''// 级联选择器的清空 |
| | | this.getUserSearch() |
| | |
| | | dialogCascaderChange(val) { |
| | | this.dialogForm.StuOrg = val[val.length - 1] |
| | | }, |
| | | // 获取下拉生产班组 |
| | | async getMesOrderStepReportSelectUserGroup() { |
| | | const { data: res } = await MesOrderStepReportSelectUserGroup() |
| | | this.usergroupArr = res |
| | | }, |
| | | // 新增按钮 |
| | | add(operation) { |
| | | this.operation = operation |
| | | this.dialogVisible = true |
| | | this.getUserOrganization2() |
| | | this.getMesOrderStepReportSelectUserGroup() |
| | | }, |
| | | // 修改按钮 |
| | | edit(operation, row) { |
| | |
| | | this.dialogForm.UserCode = row.usercode |
| | | this.dialogForm.UserName = row.username |
| | | this.dialogForm.Password = row.password |
| | | this.dialogForm.groupcode = row.group_code |
| | | this.dialogForm.Enable = row.enable |
| | | this.dialogForm.StuOrg = row.stu_torgcode |
| | | this.$refs.dialogCascader.checkedValue = row.stu_torgcode |
| | |
| | | this.dialogForm.Email = row.email |
| | | this.dialogForm.wagetype = row.wagetype |
| | | }) |
| | | this.getMesOrderStepReportSelectUserGroup() |
| | | this.getUserOrganization2() |
| | | }, |
| | | // 删除按钮 |
| | | async del(id) { |
| | |
| | | this.dialogForm.UserCode = '' |
| | | this.dialogForm.UserName = '' |
| | | this.dialogForm.Password = '' |
| | | this.dialogForm.Enable = '' |
| | | this.dialogForm.Enable = 'Y' |
| | | this.$refs.dialogCascader.checkedValue = '' |
| | | this.dialogForm.StuOrg = '' |
| | | this.dialogForm.Mobile = '' |
| | | this.dialogForm.Email = '' |
| | | this.dialogForm.groupcode = '' |
| | | this.dialogForm.wagetype = '' |
| | | this.$refs.dialogForm.clearValidate() |
| | | }, |
| | |
| | | StuOrg: Array.isArray(this.$refs.dialogCascader.checkedValue) ? this.$refs.dialogCascader.checkedValue[this.$refs.dialogCascader.checkedValue.length - 1] : this.$refs.dialogCascader.checkedValue, |
| | | Mobile: this.dialogForm.Mobile, |
| | | Email: this.dialogForm.Email, |
| | | groupcode: this.dialogForm.groupcode, |
| | | wagetype: this.dialogForm.wagetype, |
| | | OperType: this.operation === 'add' ? 'Add' : 'Update', |
| | | Operator: getCookie('admin') |
| | |
| | | this.$nextTick(() => { |
| | | this.mainHeight = window.innerHeight - 250 |
| | | this.tableHeight = this.mainHeight - 100 |
| | | this.isFullscreen = window.innerHeight < 800 |
| | | // this.isFullscreen = window.innerHeight < 800 |
| | | if (window.innerHeight < 800) { |
| | | this.tableHeight = this.tableHeight - 50 |
| | | } |
| | |
| | | const res = await SaveUserAssoctRole(this.dialogFormRoles.roleTreeSelectedArr, this.dialogFormRoles.usercode) |
| | | if (res.code === '200') { |
| | | this.$message.success('保存成功!') |
| | | await this.getUserSearch() |
| | | this.dialogVisibleRoles = false |
| | | } |
| | | }, |
| | |
| | | if (i.Code === checkedFatherCode) { |
| | | this.dialogFormRoles.roleTreeSelectedArr[ind].Data.forEach((i1, ind2) => { |
| | | if (i1 === a[0]) { |
| | | this.dialogFormRoles.roleTreeSelectedArr[ind].Data.splice(ind2, 1)// 当子code与现在的code相同时执行 |
| | | // this.dialogFormRoles.roleTreeSelectedArr[ind].Data.splice(ind2, 1)// 当子code与现在的code相同时执行 |
| | | this.dialogFormRoles.roleTreeSelectedArr[ind].Data = this.dialogFormRoles.roleTreeSelectedArr[ind].Data.filter(i2 => i2 !== a[0]) |
| | | } else { |
| | | this.dialogFormRoles.roleTreeSelectedArr[ind].Data.push(a[0])// //当子code与现在的code不相同时执行 |
| | | } |
| | |
| | | this.workingTableData.splice(index, 1) |
| | | } |
| | | }) |
| | | // this.getUserGroupSearch() |
| | | this.getMesOrderStepReportSelectUserGroup() |
| | | }, |
| | | // 生产班组排序 |
| | | sortChangeOfWorking({ column, prop, order }) { |
| | |
| | | this.getUserGroupSearch() |
| | | }, |
| | | // 获取生产班组列表 |
| | | async getUserGroupSearch() { |
| | | async getUserGroupSearch() { |
| | | const res = await UserGroupSearch(this.formWorking) |
| | | this.workingTableData = res.data |
| | | this.workingTableDataLength = res.count |
| | |
| | | }) |
| | | }, |
| | | // 保存 |
| | | async saveWorking(row) { |
| | | async saveWorking(row) { |
| | | if (row.group_code.trim().length < 1) { |
| | | return this.$message.info('班组编码不能为空!') |
| | | } |
| | | if (row.group_name.trim().length < 1) { |
| | | return this.$message.info('班组名称不能为空!') |
| | | } |
| | | if (row.description.trim().length < 1) { |
| | | return this.$message.info('班组描述不能为空!') |
| | | } |
| | | // if (row.description.trim().length < 1) { |
| | | // return this.$message.info('班组描述不能为空!') |
| | | // } |
| | | const data = { |
| | | code: row.group_code, |
| | | name: row.group_name, |
| | |
| | | border: none; |
| | | padding: 0 20px; |
| | | } |
| | | |
| | | ::v-deep .el-button--primary:hover { |
| | | border: none; |
| | | } |
| | |
| | | padding: 20px 100px !important; |
| | | } |
| | | |
| | | .workingDialogVisible ::v-deep .el-dialog__body{ |
| | | .workingDialogVisible ::v-deep .el-dialog__body { |
| | | padding: 20px 20px !important; |
| | | } |
| | | |
| | |
| | | border-color: $main_color; |
| | | } |
| | | |
| | | ::v-deep .el-select .el-input__inner:focus{ |
| | | ::v-deep .el-select .el-input__inner:focus { |
| | | border-color: $main_color; |
| | | } |
| | | |
| | | ::v-deep .el-select-dropdown__item.selected{ |
| | | ::v-deep .el-select-dropdown__item.selected { |
| | | color: $main_color; |
| | | } |
| | | |
| | | ::v-deep .el-input__inner:focus { |
| | | ::v-deep .el-input__inner:focus { |
| | | border-color: #42b983 !important; |
| | | } |
| | | |
| | |
| | | background-color: #42b983; |
| | | border-color: #42b983; |
| | | } |
| | | |
| | | .el-radio__input.is-checked .el-radio__inner:hover { |
| | | border-color: #42b983; |
| | | } |
| | | .el-input__inner{ |
| | | |
| | | .el-input__inner { |
| | | border-color: #42b983 !important; |
| | | } |
| | | |