增加自动化代码图片功能
This commit is contained in:
@@ -4,25 +4,7 @@
|
||||
<el-col :span="6">
|
||||
<div class="fl-left avatar-box">
|
||||
<div class="user-card">
|
||||
<div
|
||||
class="user-headpic-update"
|
||||
:style="{
|
||||
'background-image': `url(${
|
||||
userStore.userInfo.headerImg &&
|
||||
userStore.userInfo.headerImg.slice(0, 4) !== 'http'
|
||||
? path + userStore.userInfo.headerImg
|
||||
: userStore.userInfo.headerImg
|
||||
})`,
|
||||
'background-repeat': 'no-repeat',
|
||||
'background-size': 'cover',
|
||||
}"
|
||||
>
|
||||
<span class="update" @click="openChooseImg">
|
||||
<el-icon>
|
||||
<edit />
|
||||
</el-icon>
|
||||
重新上传</span>
|
||||
</div>
|
||||
<SelectImage v-model="userStore.userInfo.headerImg" />
|
||||
<div class="user-personality">
|
||||
<p v-if="!editFlag" class="nickName">
|
||||
{{ userStore.userInfo.nickName }}
|
||||
@@ -129,8 +111,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<ChooseImg ref="chooseImgRef" @enter-img="enterImg" />
|
||||
|
||||
<el-dialog
|
||||
v-model="showPassword"
|
||||
title="修改密码"
|
||||
@@ -231,13 +211,12 @@ export default {
|
||||
</script>
|
||||
|
||||
<script setup>
|
||||
import ChooseImg from '@/components/chooseImg/index.vue'
|
||||
import { setSelfInfo, changePassword } from '@/api/user.js'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { reactive, ref, watch } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { useUserStore } from '@/pinia/modules/user'
|
||||
import SelectImage from '@/components/selectImage/selectImage.vue'
|
||||
|
||||
const path = ref(import.meta.env.VITE_BASE_API + '/')
|
||||
const activeName = ref('second')
|
||||
const rules = reactive({
|
||||
password: [
|
||||
@@ -297,21 +276,16 @@ const clearPassword = () => {
|
||||
modifyPwdForm.value.clearValidate()
|
||||
}
|
||||
|
||||
const chooseImgRef = ref(null)
|
||||
const openChooseImg = () => {
|
||||
chooseImgRef.value.open()
|
||||
}
|
||||
|
||||
const enterImg = async(url) => {
|
||||
const res = await setSelfInfo({ headerImg: url })
|
||||
watch(() => userStore.userInfo.headerImg, async(val) => {
|
||||
const res = await setSelfInfo({ headerImg: val })
|
||||
if (res.code === 0) {
|
||||
userStore.ResetUserInfo({ headerImg: url })
|
||||
userStore.ResetUserInfo({ headerImg: val })
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '设置成功',
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const openEdit = () => {
|
||||
nickName.value = userStore.userInfo.nickName
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
:rules="rules"
|
||||
class="grid-form"
|
||||
>
|
||||
<el-form-item label="Field名称" prop="fieldName">
|
||||
<el-form-item label="字段名称" prop="fieldName">
|
||||
<el-input v-model="middleDate.fieldName" autocomplete="off" style="width:80%" />
|
||||
<el-button style="width:18%;margin-left:2%" @click="autoFill">
|
||||
<span style="font-size: 12px">自动填充</span>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="Field中文名" prop="fieldDesc">
|
||||
<el-form-item label="字段中文名" prop="fieldDesc">
|
||||
<el-input v-model="middleDate.fieldDesc" autocomplete="off" />
|
||||
</el-form-item>
|
||||
<el-form-item label="FieldJSON" prop="fieldJson">
|
||||
<el-form-item label="字段JSON" prop="fieldJson">
|
||||
<el-input v-model="middleDate.fieldJson" autocomplete="off" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数据库字段名" prop="columnName">
|
||||
@@ -27,11 +27,11 @@
|
||||
<el-form-item label="数据库字段描述" prop="comment">
|
||||
<el-input v-model="middleDate.comment" autocomplete="off" />
|
||||
</el-form-item>
|
||||
<el-form-item label="Field数据类型" prop="fieldType">
|
||||
<el-form-item label="字段类型" prop="fieldType">
|
||||
<el-select
|
||||
v-model="middleDate.fieldType"
|
||||
style="width:100%"
|
||||
placeholder="请选择field数据类型"
|
||||
placeholder="请选择字段类型"
|
||||
clearable
|
||||
@change="clearOther"
|
||||
>
|
||||
@@ -40,17 +40,18 @@
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:disabled="item.disabled"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="middleDate.fieldType === 'enum' ? '枚举值' : '类型长度'" prop="dataTypeLong">
|
||||
<el-input v-model="middleDate.dataTypeLong" :placeholder="middleDate.fieldType === 'enum'?`例:'北京','天津'`:'数据库类型长度'" />
|
||||
</el-form-item>
|
||||
<el-form-item label="Field查询条件" prop="fieldSearchType">
|
||||
<el-form-item label="字段查询条件" prop="fieldSearchType">
|
||||
<el-select
|
||||
v-model="middleDate.fieldSearchType"
|
||||
style="width:100%"
|
||||
placeholder="请选择Field查询条件"
|
||||
placeholder="请选择字段查询条件"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
@@ -58,10 +59,7 @@
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:disabled="
|
||||
(middleDate.fieldType!=='string'&&item.value==='LIKE')||
|
||||
((middleDate.fieldType!=='int'&&middleDate.fieldType!=='time.Time'&&middleDate.fieldType!=='float64')&&(item.value==='BETWEEN' || item.value==='NOT BETWEEN'))
|
||||
"
|
||||
:disabled="canSelect(item.value)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -169,23 +167,42 @@ const typeOptions = ref([
|
||||
{
|
||||
label: '枚举',
|
||||
value: 'enum'
|
||||
},
|
||||
{
|
||||
label: '单图片(字符串)',
|
||||
value: 'picture',
|
||||
},
|
||||
{
|
||||
label: '多图片(开发中)',
|
||||
value: 'pictures',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
label: '文件(开发中)',
|
||||
value: 'file',
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
label: '多文件(开发中)',
|
||||
value: 'files',
|
||||
disabled: true
|
||||
}
|
||||
])
|
||||
const rules = ref({
|
||||
fieldName: [
|
||||
{ required: true, message: '请输入field英文名', trigger: 'blur' }
|
||||
{ required: true, message: '请输入字段英文名', trigger: 'blur' }
|
||||
],
|
||||
fieldDesc: [
|
||||
{ required: true, message: '请输入field中文名', trigger: 'blur' }
|
||||
{ required: true, message: '请输入字段中文名', trigger: 'blur' }
|
||||
],
|
||||
fieldJson: [
|
||||
{ required: true, message: '请输入field格式化json', trigger: 'blur' }
|
||||
{ required: true, message: '请输入字段格式化json', trigger: 'blur' }
|
||||
],
|
||||
columnName: [
|
||||
{ required: true, message: '请输入数据库字段', trigger: 'blur' }
|
||||
],
|
||||
fieldType: [
|
||||
{ required: true, message: '请选择field数据类型', trigger: 'blur' }
|
||||
{ required: true, message: '请选择字段类型', trigger: 'blur' }
|
||||
]
|
||||
})
|
||||
|
||||
@@ -205,6 +222,18 @@ const autoFill = () => {
|
||||
middleDate.value.columnName = toSQLLine(middleDate.value.fieldJson)
|
||||
}
|
||||
|
||||
const canSelect = (item) => {
|
||||
const fieldType = middleDate.value.fieldType
|
||||
if (fieldType !== 'string' && item === 'LIKE') {
|
||||
return true
|
||||
}
|
||||
|
||||
if ((fieldType !== 'int' && fieldType !== 'time.Time' && fieldType !== 'float64') && (item === 'BETWEEN' || item === 'NOT BETWEEN')) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
const clearOther = () => {
|
||||
middleDate.value.fieldSearchType = ''
|
||||
middleDate.value.dictType = ''
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
<!-- 组件列表 -->
|
||||
<div class="gva-table-box">
|
||||
<div class="gva-btn-list">
|
||||
<el-button type="primary" @click="editAndAddField()">新增Field</el-button>
|
||||
<el-button type="primary" @click="editAndAddField()">新增字段</el-button>
|
||||
</div>
|
||||
<el-table :data="form.fields">
|
||||
<el-table-column align="left" type="index" label="序列" width="60" />
|
||||
<el-table-column align="left" prop="fieldName" label="Field名" width="160">
|
||||
<el-table-column align="left" prop="fieldName" label="字段名称" width="160">
|
||||
<template #default="{row}">
|
||||
<el-input v-model="row.fieldName" />
|
||||
</template>
|
||||
@@ -166,17 +166,17 @@
|
||||
<el-table-column align="left" prop="sort" label="排序">
|
||||
<template #default="{row}"> <el-checkbox v-model="row.sort" /> </template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" prop="fieldJson" width="160px" label="FieldJson">
|
||||
<el-table-column align="left" prop="fieldJson" width="160px" label="字段Json">
|
||||
<template #default="{row}">
|
||||
<el-input v-model="row.fieldJson" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="left" prop="fieldType" label="Field数据类型" width="160">
|
||||
<el-table-column align="left" prop="fieldType" label="字段类型" width="160">
|
||||
<template #default="{row}">
|
||||
<el-select
|
||||
v-model="row.fieldType"
|
||||
style="width:100%"
|
||||
placeholder="请选择field数据类型"
|
||||
placeholder="请选择字段类型"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
@@ -208,7 +208,7 @@
|
||||
<el-select
|
||||
v-model="row.fieldSearchType"
|
||||
style="width:100%"
|
||||
placeholder="请选择Field查询条件"
|
||||
placeholder="请选择字段查询条件"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
|
||||
Reference in New Issue
Block a user