|
@@ -1,168 +1,142 @@
|
|
|
<template>
|
|
|
<el-dialog
|
|
|
:title="dialogTitle"
|
|
|
- v-model="dialogVisible"
|
|
|
- width="640px"
|
|
|
- @close="closeDialog()"
|
|
|
- @open="open"
|
|
|
+ v-model="showDialog"
|
|
|
+ width="900px"
|
|
|
+ @open="open()"
|
|
|
+ @close="closeDialog(0)"
|
|
|
>
|
|
|
<el-form
|
|
|
ref="formInfo"
|
|
|
:model="form"
|
|
|
- class="demo-form-inline userManageDialog"
|
|
|
- label-width="100px"
|
|
|
+ class="demo-form-inline"
|
|
|
+ label-width="150px"
|
|
|
:rules="rules"
|
|
|
>
|
|
|
- <el-form-item label="用户名:" prop="nickName">
|
|
|
- <el-input
|
|
|
- v-model="form.nickName"
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="账号:" prop="userName">
|
|
|
- <el-input
|
|
|
- v-model="form.userName"
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="性别:" prop="sex">
|
|
|
- <el-radio-group v-model="form.sex" :disabled="dialogTitle === '查看'">
|
|
|
- <el-radio label="1" value="1">男</el-radio>
|
|
|
- <el-radio label="2" value="2">女</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12" :gutter="20">
|
|
|
+ <el-form-item label="租户名称:" prop="tenantName">
|
|
|
+ <el-input v-model="form.tenantName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="租户负责人:" prop="tenantManager">
|
|
|
+ <el-input v-model="form.tenantManager"></el-input>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item label="手机号码:" prop="phonenumber">
|
|
|
- <el-input
|
|
|
- v-model="form.phonenumber"
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="密码" prop="password" v-if="dialogTitle == '新增'">
|
|
|
- <el-input
|
|
|
- v-model="form.password"
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="有效期限:" prop="tenantTerm">
|
|
|
+ <el-radio-group v-model="form.tenantTerm">
|
|
|
+ <el-radio :label="3" value="3">永久有效</el-radio>
|
|
|
+ <el-radio :label="4" value="4">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.value1"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择日期"
|
|
|
+ />
|
|
|
+ </el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <!-- <el-form-item
|
|
|
- label="创建时间:"
|
|
|
- prop="createTime"
|
|
|
- style="margin-top: 0px"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- v-model="form.createTime"
|
|
|
- width="100%"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期时间"
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- ></el-date-picker>
|
|
|
- </el-form-item> -->
|
|
|
-
|
|
|
- <el-form-item label="角色名称:" prop="roleId">
|
|
|
- <!-- <el-input v-model="form.roleName"></el-input> -->
|
|
|
- <el-select
|
|
|
- v-model="form.roleId"
|
|
|
- placeholder="请选择"
|
|
|
- clearable
|
|
|
- :disabled="dialogTitle === '查看'"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in roleSelectData"
|
|
|
- :key="index"
|
|
|
- :label="item.roleName"
|
|
|
- :value="item.roleId"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="地理位置:" prop="geoPosition">
|
|
|
+ <el-input v-model="form.geoPosition"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" :gutter="20">
|
|
|
+ <el-form-item label="租户类型:" prop="tenantType">
|
|
|
+ <el-select v-model="form.tenantType" placeholder="请选择">
|
|
|
+ <el-option label="试用租户" :value="0"></el-option>
|
|
|
+ <el-option label="正式租户" :value="1"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="负责人手机号:" prop="phoneNumber">
|
|
|
+ <el-input v-model="form.phoneNumber"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- <el-form-item label="系统平台:" prop="systemName">
|
|
|
+ <el-input v-model="form.systemName"></el-input>
|
|
|
+ </el-form-item> -->
|
|
|
|
|
|
- <el-form-item label="所属站点:" prop="siteId">
|
|
|
- <el-select
|
|
|
- v-model="form.siteId"
|
|
|
+ <el-form-item label="系统平台:" prop="systemName">
|
|
|
+ <el-select
|
|
|
+ v-model="form.systemName"
|
|
|
placeholder="请选择"
|
|
|
- clearable
|
|
|
- multiple
|
|
|
- filterable
|
|
|
- collapse-tags
|
|
|
- @change="linkChange()"
|
|
|
-
|
|
|
>
|
|
|
+ <!-- <el-option label="永天智慧电力平台" :value="1"></el-option>
|
|
|
+ <el-option label="伍继智慧电力平台" :value="2"></el-option>
|
|
|
+ <el-option label="电力运营管理平台" :value="3"></el-option> -->
|
|
|
+
|
|
|
<el-option
|
|
|
- v-for="site in store.state.siteList"
|
|
|
- :key="site"
|
|
|
- :label="site.siteName"
|
|
|
- :value="site.id"
|
|
|
-
|
|
|
- ></el-option>
|
|
|
+ v-for="(item, index) in getPlatformBoxList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.platformName"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
+
|
|
|
+
|
|
|
</el-select>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
|
|
|
+ <el-form-item label="邮箱地址:" prop="email">
|
|
|
+ <el-input v-model="form.email"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系地址:" prop="address">
|
|
|
+ <el-input v-model="form.address"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-form-item label="">
|
|
|
+ <div
|
|
|
+ style="width: 670px; height: 130px; background: rgba(0, 0, 0, 0.2)"
|
|
|
+ >
|
|
|
+ 地图
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注:" prop="remark">
|
|
|
+ <el-input
|
|
|
+ v-model="form.remark"
|
|
|
+ :rows="2"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入..."
|
|
|
+ style="width: 670px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
<br />
|
|
|
- <br />
|
|
|
- <br />
|
|
|
+
|
|
|
<div style="text-align: right">
|
|
|
<el-button @click="closeDialog(0)">取消</el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="submitForm('formInfo')"
|
|
|
- :disabled="isDisable"
|
|
|
- v-if="dialogTitle !== '查看'"
|
|
|
- >
|
|
|
- 确定
|
|
|
- </el-button>
|
|
|
+ <el-button type="primary" @click="submitForm()">保存</el-button>
|
|
|
</div>
|
|
|
</el-form>
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
-
|
|
|
<script>
|
|
|
-import { defineComponent, ref, onMounted, watchEffect,watch } from 'vue'
|
|
|
-import * as api from '@/api/systemManage/userManage.js'
|
|
|
-import { ElMessage } from 'element-plus'
|
|
|
-import { parseTime, validatorPhone } from '@/utils'
|
|
|
import { useStore } from 'vuex'
|
|
|
-
|
|
|
+import { defineComponent, ref, watchEffect ,onMounted} from 'vue'
|
|
|
+import * as api from '@/api/tenantManage/tenantUnit.js'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+// import { parseTime } from '@/utils'
|
|
|
+import { validatorPhone, parseTime, isEmail } from '@/utils'
|
|
|
export default defineComponent({
|
|
|
name: 'DialogComponent',
|
|
|
emits: ['closeDialog'],
|
|
|
props: {
|
|
|
- flag: Boolean,
|
|
|
+ show_Dialog: Boolean,
|
|
|
dialogTitle: String,
|
|
|
- itemInfo: Object,
|
|
|
+ itemInfo: {
|
|
|
+ type: Object,
|
|
|
+ default: function () {
|
|
|
+ return {}
|
|
|
+ },
|
|
|
+ },
|
|
|
},
|
|
|
- setup(props, context) {
|
|
|
- context
|
|
|
+ setup(props, { emit }) {
|
|
|
const store = useStore()
|
|
|
- const dialogVisible = ref(false)
|
|
|
+ const beginTime = ref('')
|
|
|
+ const showDialog = ref(false)
|
|
|
+ const form = ref({})
|
|
|
const formInfo = ref(null)
|
|
|
- const isDisable = ref(false)
|
|
|
-
|
|
|
- const form = ref([])
|
|
|
- const roleSelectData = ref([])
|
|
|
-
|
|
|
- // open(): Dialog弹窗打开之前做的事
|
|
|
- const open = () => {
|
|
|
-
|
|
|
- form.value = props.itemInfo.value
|
|
|
- console.log('form.value')
|
|
|
- console.log(form.value)
|
|
|
- console.log(form.value.siteId)
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // 关闭弹框
|
|
|
- const closeDialog = () => {
|
|
|
- resetForm()
|
|
|
- context.emit('closeDialog', false)
|
|
|
- dialogVisible.value = false
|
|
|
- }
|
|
|
|
|
|
- watchEffect((fn, options) => {
|
|
|
- fn, options
|
|
|
- dialogVisible.value = props.flag
|
|
|
- })
|
|
|
+ const getPlatformBoxList = ref([])
|
|
|
|
|
|
const roleValid = (rule, value, callback) => {
|
|
|
rule
|
|
@@ -173,36 +147,44 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 保存-修改操作
|
|
|
+ // 保存操作
|
|
|
const submitForm = () => {
|
|
|
- form.value.createTime = parseTime(new Date())
|
|
|
-
|
|
|
formInfo.value.validate((valid) => {
|
|
|
if (valid) {
|
|
|
- isDisable.value = true
|
|
|
- setTimeout(() => {
|
|
|
- isDisable.value = false //点击一次时隔两秒后才能再次点击
|
|
|
- }, 2000)
|
|
|
- form.value.roleIds = [form.value.roleId] //roleIds 传给后台
|
|
|
+
|
|
|
+ var aa = form.value
|
|
|
+ if (aa.tenantTerm == 3) {
|
|
|
+ aa.tenantTerm = '永久有效'
|
|
|
+ }
|
|
|
+ if (aa.tenantTerm == 4) {
|
|
|
+ if (!form.value.value1) {
|
|
|
+ ElMessage.warning('请选择日期')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ aa.tenantTerm = form.value.value1
|
|
|
+
|
|
|
+ parseTime
|
|
|
+
|
|
|
+ aa.tenantTerm
|
|
|
+ ? (aa.tenantTerm = parseTime(aa.tenantTerm).substring(0, 10))
|
|
|
+ : ''
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if (props.dialogTitle === '新增') {
|
|
|
- api.userAdd(form.value).then((requset) => {
|
|
|
+ api.addTenantData(form.value).then((requset) => {
|
|
|
if (requset.status === 'SUCCESS') {
|
|
|
ElMessage.success({
|
|
|
message: '新增成功',
|
|
|
type: 'success',
|
|
|
})
|
|
|
- setTimeout(() => {
|
|
|
- isDisable.value = false //点击一次时隔两秒后才能再次点击
|
|
|
- }, 2000)
|
|
|
-
|
|
|
closeDialog()
|
|
|
} else {
|
|
|
- alert(requset.msg)
|
|
|
- // ElMessage.error(requset.msg)
|
|
|
+ ElMessage.error(requset.msg)
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
- api.userUpdate(form.value).then((requset) => {
|
|
|
+ api.updateTenantData(form.value).then((requset) => {
|
|
|
if (requset.status === 'SUCCESS') {
|
|
|
ElMessage.success({
|
|
|
message: '修改成功',
|
|
@@ -221,97 +203,130 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const open = () => {
|
|
|
+ form.value = props.itemInfo;
|
|
|
+ console.log('form.value')
|
|
|
+ console.log(form.value)
|
|
|
+
|
|
|
+ optionselect()
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 关闭弹框
|
|
|
+ const closeDialog = (flag) => {
|
|
|
+ resetForm()
|
|
|
+ showDialog.value = false
|
|
|
+ emit('closeDialog', flag)
|
|
|
+ }
|
|
|
+
|
|
|
+ function resetForm() {
|
|
|
+ formInfo.value.resetFields()
|
|
|
+ }
|
|
|
+
|
|
|
//角色下拉请求
|
|
|
function optionselect() {
|
|
|
- api.optionselect().then((requset) => {
|
|
|
+ api.getPlatformBoxList().then((requset) => {
|
|
|
if (requset.status === 'SUCCESS') {
|
|
|
|
|
|
- roleSelectData.value = requset.data
|
|
|
+ getPlatformBoxList.value = requset.data
|
|
|
} else {
|
|
|
ElMessage.error(requset.msg)
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- function resetForm() {
|
|
|
- formInfo.value.resetFields()
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- function linkChange(){
|
|
|
|
|
|
|
|
|
- }
|
|
|
+ watchEffect((fn, options) => {
|
|
|
+ fn, options
|
|
|
+ showDialog.value = props.show_Dialog
|
|
|
+ })
|
|
|
|
|
|
- //监听变化
|
|
|
- watch(
|
|
|
- () => props.siteIdArr,
|
|
|
- (newVal) => {
|
|
|
- alert(1)
|
|
|
- newVal
|
|
|
-
|
|
|
- }
|
|
|
- )
|
|
|
+ //禁止选择以前的时间
|
|
|
+ const pickerEndDate = (time) => {
|
|
|
+ const timeRange = 1 * 24 * 60 * 60 * 1000
|
|
|
+ return time.getTime() <= Date.now() - timeRange * 1
|
|
|
+ }
|
|
|
|
|
|
onMounted(() => {
|
|
|
- optionselect()
|
|
|
+
|
|
|
})
|
|
|
|
|
|
return {
|
|
|
- store,
|
|
|
- linkChange,
|
|
|
- closeDialog,
|
|
|
- dialogVisible,
|
|
|
+ pickerEndDate,
|
|
|
roleValid,
|
|
|
- formInfo,
|
|
|
- form,
|
|
|
- roleSelectData,
|
|
|
- open,
|
|
|
submitForm,
|
|
|
- resetForm,
|
|
|
- isDisable,
|
|
|
+ closeDialog,
|
|
|
+ open,
|
|
|
+
|
|
|
+ store,
|
|
|
+ beginTime,
|
|
|
+ showDialog,
|
|
|
+
|
|
|
+ checked: true,
|
|
|
+ form,
|
|
|
+ formInfo,
|
|
|
+ getPlatformBoxList,
|
|
|
+
|
|
|
rules: {
|
|
|
-
|
|
|
- nickName: [
|
|
|
- { required: true, message: '请输入用户名', trigger: 'blur' },
|
|
|
+ tenantName: [
|
|
|
+ { required: true, message: '请输入租户名称', trigger: 'blur' },
|
|
|
{
|
|
|
- min: 2,
|
|
|
-
|
|
|
- message: '用户名长度至少2个字符',
|
|
|
+ min: 1,
|
|
|
+ max: 30,
|
|
|
+ message: '长度在 1 到 30个字符',
|
|
|
trigger: 'blur',
|
|
|
},
|
|
|
],
|
|
|
- userName: [
|
|
|
- { required: true, message: '请输入账号', trigger: 'blur' },
|
|
|
+ tenantManager: [
|
|
|
+ { required: true, message: '请输入租户负责人', trigger: 'blur' },
|
|
|
{
|
|
|
+ min: 1,
|
|
|
max: 10,
|
|
|
- message: '账号最多输入 10 个字符',
|
|
|
+ message: '长度在 1 到 10个字符',
|
|
|
trigger: 'blur',
|
|
|
},
|
|
|
],
|
|
|
- sex: [{ required: true, message: '请选择性别', trigger: 'change' }],
|
|
|
- phonenumber: [
|
|
|
- { required: true, message: '请输入手机号码', trigger: 'blur' },
|
|
|
+ tenantTerm: [
|
|
|
+ { required: true, message: '请选择有效期限', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ geoPosition: [
|
|
|
+ { required: true, message: '请选输入地理位置', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+
|
|
|
+ tenantType: [
|
|
|
+ { required: true, message: '请输入租户类型', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ phoneNumber: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入负责人手机号码',
|
|
|
+ trigger: 'blur',
|
|
|
+ },
|
|
|
{
|
|
|
validator: validatorPhone,
|
|
|
message: '输入的电话号码不正确',
|
|
|
trigger: 'blur',
|
|
|
},
|
|
|
],
|
|
|
- createTime: [
|
|
|
- { required: true, message: '请输入创建时间', trigger: 'blur' },
|
|
|
+ systemName: [
|
|
|
+ { required: true, message: '请选择系统平台', trigger: 'blur' },
|
|
|
],
|
|
|
- roleId: [
|
|
|
- { required: true, message: '请选择角色名称', trigger: 'blur' },
|
|
|
+ email: [
|
|
|
+ { required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
|
|
+
|
|
|
+ {
|
|
|
+ validator: isEmail,
|
|
|
+ message: '输入的邮箱地址不正确',
|
|
|
+ trigger: 'blur',
|
|
|
+ },
|
|
|
],
|
|
|
- siteId: [{ required: true, message: '请选择站点', trigger: 'blur' }],
|
|
|
- password: [
|
|
|
- { required: true, message: '请输入密码', trigger: 'blur' },
|
|
|
+ address: [
|
|
|
+ { required: true, message: '请输入联系地址', trigger: 'blur' },
|
|
|
{
|
|
|
- min: 3,
|
|
|
- max: 6,
|
|
|
- message: '长度在 3 到 6 个字符',
|
|
|
+ min: 1,
|
|
|
+ max: 15,
|
|
|
+ message: '长度在 1 到 15个字符',
|
|
|
trigger: 'blur',
|
|
|
},
|
|
|
],
|
|
@@ -323,9 +338,25 @@ export default defineComponent({
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
.el-input,
|
|
|
-.el-select {
|
|
|
+.el-select,
|
|
|
+.el-date-editor.el-input,
|
|
|
+.el-date-editor.el-input__inner {
|
|
|
width: 240px;
|
|
|
}
|
|
|
+
|
|
|
+.el-form-item {
|
|
|
+ margin: 0 0 20px !important;
|
|
|
+}
|
|
|
+// label样式
|
|
|
+.el-form-item__label {
|
|
|
+ width: 120px !important;
|
|
|
+}
|
|
|
+.el-form-item__content {
|
|
|
+ margin-left: 100px;
|
|
|
+}
|
|
|
+.demo-form-inline .el-form-item:not(.user-layout .el-form-item) {
|
|
|
+ // margin: 0 auto 20px 55px;
|
|
|
+}
|
|
|
</style>
|
|
|
-<style lang="scss">
|
|
|
+<style>
|
|
|
</style>
|