d6a9b62b by renchao@pashanhoo.com

Merge branch 'dev'

2 parents 18147399 8f52f70a
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:09:11
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="ruleForm" label-width="80px">
<el-row>
<el-col :span="5">
<el-form-item label="个性化配置">
<el-input ></el-input>
</el-form-item>
</el-col>
<el-col :span="19" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" >查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 表格 -->
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="ruleForm" label-width="80px">
<el-row>
<el-col :span="5">
<el-form-item label="个性化配置">
<el-input></el-input>
</el-form-item>
</el-col>
<el-col :span="19" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<!-- 表格 -->
</div>
</template>
<script>
import table from "@/utils/mixin/table";
export default {
name: "gxhpz",
components: { },
components: {},
mixins: [table],
mounted () {
},
......@@ -40,5 +45,5 @@
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
</style>
</style>
\ No newline at end of file
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:09:29
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
......@@ -31,50 +36,50 @@
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { sysSqywmbszSearch } from '@/api/sysSqywmbsz'
import table from "@/utils/mixin/table"
import { datas, sendThis } from "./qtjfjmb"
export default {
name: "qtjfjmb",
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
computed: {
...mapGetters(['dictData'])
},
data () {
return {
queryForm: {
qllx: ""
},
tableData: {
total: 0,
columns: datas.columns(),
data: []
},
bsmMb: ''
}
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading();
sysSqywmbszSearch({ ...this.pageData, ...this.queryForm }).then(res => {
this.$endLoading();
let { records, total } = res.result
this.tableData.data = records ? records : []
this.tableData.total = total ? total : 0
})
import { mapGetters } from 'vuex'
import { sysSqywmbszSearch } from '@/api/sysSqywmbsz'
import table from "@/utils/mixin/table"
import { datas, sendThis } from "./qtjfjmb"
export default {
name: "qtjfjmb",
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
editClick (row) {
this.$popupDialog("其他及附记模板", "system/qtjfjmb/components/editDialog", row, '60%')
computed: {
...mapGetters(['dictData'])
},
data () {
return {
queryForm: {
qllx: ""
},
tableData: {
total: 0,
columns: datas.columns(),
data: []
},
bsmMb: ''
}
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading();
sysSqywmbszSearch({ ...this.pageData, ...this.queryForm }).then(res => {
this.$endLoading();
let { records, total } = res.result
this.tableData.data = records ? records : []
this.tableData.total = total ? total : 0
})
},
editClick (row) {
this.$popupDialog("其他及附记模板", "system/qtjfjmb/components/editDialog", row, '60%')
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/public.scss";
</style>
......
<!--
功能:登记情形设定
* @Description: 登记情形设定
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:09:47
-->
<template>
<div>
......@@ -22,209 +24,208 @@
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { upward, down } from '@/utils/operation'
export default {
props: {
ruleForm: {
type: Object, default: {}
},
clzt: {
type: Array, default: () => {
return []
import { mapGetters } from 'vuex'
import { upward, down } from '@/utils/operation'
export default {
props: {
ruleForm: {
type: Object, default: {}
},
clzt: {
type: Array, default: () => {
return []
}
},
djqx: {
type: Array, default: () => {
return []
}
}
},
djqx: {
type: Array, default: () => {
return []
}
}
},
computed: {
...mapGetters(['dictData'])
},
data () {
return {
key: 0,
column: [
{
width: '60',
renderHeader: (h, scope) => {
return <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }} style="color:#409EFF"></i>
computed: {
...mapGetters(['dictData'])
},
data () {
return {
key: 0,
column: [
{
width: '60',
renderHeader: (h, scope) => {
return <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }} style="color:#409EFF"></i>
},
render: (h, scope) => {
return (
<i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
)
}
},
render: (h, scope) => {
return (
<i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
)
}
},
{
width: '60',
label: '序号',
type: 'index'
},
{
label: '是否必填',
width: '130',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.isrequired} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}></el-radio>
<el-radio label={'0'}></el-radio>
</el-radio-group>
)
}
},
{
prop: 'clbm',
label: '材料编码',
width: '100',
render: (h, scope) => {
return (
<el-input placeholder="材料编码" value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }} maxlength="8"></el-input>
)
}
},
{
prop: 'clmc',
label: '材料名称',
render: (h, scope) => {
return (
<el-input placeholder="材料名称" value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'cllx',
label: '材料类型',
width: '115',
render: (h, scope) => {
return (
<el-select value={scope.row[scope.column.property]}
onChange={(val) => { scope.row[scope.column.property] = val }} clearable>
{
this.dictData['A40'].map(option => {
return (
<el-option label={option.dname} value={option.dcode}></el-option>
)
})
}
</el-select>
)
{
width: '60',
label: '序号',
type: 'index'
},
{
label: '是否必填',
width: '130',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.isrequired} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}></el-radio>
<el-radio label={'0'}></el-radio>
</el-radio-group>
)
}
},
{
prop: 'clbm',
label: '材料编码',
width: '100',
render: (h, scope) => {
return (
<el-input placeholder="材料编码" value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }} maxlength="8"></el-input>
)
}
},
{
prop: 'clmc',
label: '材料名称',
render: (h, scope) => {
return (
<el-input placeholder="材料名称" value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'cllx',
label: '材料类型',
width: '115',
render: (h, scope) => {
return (
<el-select value={scope.row[scope.column.property]}
onChange={(val) => { scope.row[scope.column.property] = val }} clearable>
{
this.dictData['A40'].map(option => {
return (
<el-option label={option.dname} value={option.dcode}></el-option>
)
})
}
</el-select>
)
}
},
{
label: '是否公共材料',
width: '100',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.sfggcl} onChange={(val) => { scope.row[scope.column.property] = val; this.handleSelectGgcl(scope.row) }}>
<el-radio label={'1'}></el-radio>
<el-radio label={'0'}></el-radio>
</el-radio-group>
)
}
},
{
prop: 'djqxbm',
label: '登记情形',
width: '180',
render: (h, scope) => {
return (
<el-select disabled={scope.row.sfggcl == '1'} value={scope.row[scope.column.property]}
onChange={(val) => { scope.row[scope.column.property] = val }} clearable>
{
this.djqx.map(option => {
return (
<el-option label={option.nodename} value={option.nodecode}></el-option>
)
})
}
</el-select>
)
}
},
{
label: '移动',
width: '90',
render: (h, scope) => {
return (
<div>
<el-button type='text' disabled={scope.$index == 0} onClick={() => { this.moveUpward(scope.$index, scope.row) }}>上移</el-button>
<el-button type='text' disabled={(scope.$index + 1) == this.tableData.length} onClick={() => { this.moveDown(scope.$index, scope.row) }}>下移</el-button >
</div>
)
}
}
},
{
label: '是否公共材料',
width: '100',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.sfggcl} onChange={(val) => { scope.row[scope.column.property] = val; this.handleSelectGgcl(scope.row) }}>
<el-radio label={'1'}></el-radio>
<el-radio label={'0'}></el-radio>
</el-radio-group>
)
],
tableData: []
}
},
watch: {
tableData: {
handler (newValue, oldValue) {
if (!_.isEqual(newValue, this.clzt)) {
this.$emit('updateValue', newValue)
}
},
{
prop: 'djqxbm',
label: '登记情形',
width: '180',
render: (h, scope) => {
return (
<el-select disabled={scope.row.sfggcl == '1'} value={scope.row[scope.column.property]}
onChange={(val) => { scope.row[scope.column.property] = val }} clearable>
{
this.djqx.map(option => {
return (
<el-option label={option.nodename} value={option.nodecode}></el-option>
)
})
}
</el-select>
)
}
deep: true
},
clzt: {
handler: function (newValue) {
this.tableData = _.cloneDeep(newValue)
},
{
label: '移动',
width: '90',
render: (h, scope) => {
return (
<div>
<el-button type='text' disabled={scope.$index == 0} onClick={() => { this.moveUpward(scope.$index, scope.row) }}>上移</el-button>
<el-button type='text' disabled={(scope.$index + 1) == this.tableData.length} onClick={() => { this.moveDown(scope.$index, scope.row) }}>下移</el-button >
</div>
)
}
}
],
tableData: []
}
},
watch: {
tableData: {
handler (newValue, oldValue) {
if (!_.isEqual(newValue, this.clzt)) {
this.$emit('updateValue', newValue)
}
deep: true
},
deep: true
},
clzt: {
handler: function (newValue) {
this.tableData = _.cloneDeep(newValue)
methods: {
handleAdd () {
this.tableData.push(
{
isrequired: '1',
djqxbm: '',
clbm: '',
clmc: '',
cllx: '',
sfggcl: '1'
}
)
this.key++
},
deep: true
},
},
methods: {
handleAdd () {
this.tableData.push(
{
isrequired: '1',
djqxbm: '',
clbm: '',
clmc: '',
cllx: '',
sfggcl: '1'
handleSelectGgcl (item) {
if (item.sfggcl == '1') {
item.djqxbm = ''
}
)
this.key++
},
handleSelectGgcl (item) {
if (item.sfggcl == '1') {
item.djqxbm = ''
}
},
handleMinus (index, row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
},
handleMinus (index, row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
});
},
// 上移下移
moveUpward (index, row) {
upward(index, this.tableData)
},
moveDown (index, row) {
down(index, this.tableData)
},
},
// 上移下移
moveUpward (index, row) {
upward(index, this.tableData)
},
moveDown (index, row) {
down(index, this.tableData)
},
}
}
}
</script>
<style scoped lang='scss'>
</style>
\ No newline at end of file
......
<!--
功能:登记情形设定
* @Description: 功能:登记情形设定
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:10:04
-->
<template>
<div class='djqxsd'>
......@@ -22,233 +24,233 @@
</div>
</template>
<script>
import { upward, down } from '@/utils/operation'
export default {
props: {
ruleForm: {
type: Object, default: () => {
return {}
import { upward, down } from '@/utils/operation'
export default {
props: {
ruleForm: {
type: Object, default: () => {
return {}
}
},
djqx: {
type: Array, default: () => {
return []
}
}
},
djqx: {
type: Array, default: () => {
return []
}
}
},
data () {
return {
input: '',
key: 0,
rules: {
djywbm: [
{ required: true, message: '登记业务编码', trigger: 'blur' },
],
djywmc: [
{ required: true, message: '登记业务名称', trigger: 'blur' },
],
},
column: [
{
width: '60',
renderHeader: (h, scope) => {
return <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }} style="color:#409EFF"></i>
},
render: (h, scope) => {
return (
<i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
)
}
},
{
width: '60',
label: '序号',
type: 'index'
},
{
prop: 'nodecode',
width: '105',
label: '登记情形编码',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记情形编码" class={{ repeat: scope.row.repeat }} disabled={scope.row.sftsdjqx == '1'}
value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }} onBlur={() => { this.nodecodeBlur(scope.$index, scope.row) }} maxlength="8">
</el-input>
</div>
)
}
},
{
prop: 'nodename',
label: '登记情形名称',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记情形名称" disabled={scope.row.sftsdjqx == '1'}
value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
</div>
)
}
},
{
label: '是否启用登记情形',
width: '140',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.enabled} disabled={scope.row.sftsdjqx == '1'} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}>启用</el-radio>
<el-radio label={'0'}>禁用</el-radio>
</el-radio-group>
)
}
data () {
return {
input: '',
key: 0,
rules: {
djywbm: [
{ required: true, message: '登记业务编码', trigger: 'blur' },
],
djywmc: [
{ required: true, message: '登记业务名称', trigger: 'blur' },
],
},
{
prop: 'djyy',
label: '登记原因模板',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记原因模板" disabled={scope.row.sftsdjqx == '1'} value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
</div>
column: [
{
width: '60',
renderHeader: (h, scope) => {
return <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }} style="color:#409EFF"></i>
},
render: (h, scope) => {
return (
<i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
)
}
},
{
width: '60',
label: '序号',
type: 'index'
},
{
prop: 'nodecode',
width: '105',
label: '登记情形编码',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记情形编码" class={{ repeat: scope.row.repeat }} disabled={scope.row.sftsdjqx == '1'}
value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }} onBlur={() => { this.nodecodeBlur(scope.$index, scope.row) }} maxlength="8">
</el-input>
</div>
)
}
},
{
prop: 'nodename',
label: '登记情形名称',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记情形名称" disabled={scope.row.sftsdjqx == '1'}
value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
</div>
)
}
},
{
label: '是否启用登记情形',
width: '140',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.enabled} disabled={scope.row.sftsdjqx == '1'} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}>启用</el-radio>
<el-radio label={'0'}>禁用</el-radio>
</el-radio-group>
)
}
},
{
prop: 'djyy',
label: '登记原因模板',
render: (h, scope) => {
return (
<div>
<el-input placeholder="登记原因模板" disabled={scope.row.sftsdjqx == '1'} value={scope.row[scope.column.property]}
onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
</div>
)
}
},
{
label: '是否启用模板',
width: '140',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.sfqydjyymb} disabled={scope.row.sftsdjqx == '1'} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}>启用</el-radio>
<el-radio label={'0'}>禁用</el-radio>
</el-radio-group>
)
}
},
{
label: '移动',
width: '100',
render: (h, scope) => {
return (
<div>
<el-button type='text' disabled={scope.$index == 0} onClick={() => { this.moveUpward(scope.$index, scope.row) }}>上移</el-button>
<el-button type='text' disabled={(scope.$index + 1) == this.tableData.length} onClick={() => { this.moveDown(scope.$index, scope.row) }}>下移</el-button >
</div>
)
)
}
},
{
label: '是否启用模板',
width: '140',
render: (h, scope) => {
return (
<el-radio-group v-model={scope.row.sfqydjyymb} disabled={scope.row.sftsdjqx == '1'} onChange={(val) => { scope.row[scope.column.property] = val }}>
<el-radio label={'1'}>启用</el-radio>
<el-radio label={'0'}>禁用</el-radio>
</el-radio-group>
)
}
},
{
label: '移动',
width: '100',
render: (h, scope) => {
return (
<div>
<el-button type='text' disabled={scope.$index == 0} onClick={() => { this.moveUpward(scope.$index, scope.row) }}>上移</el-button>
<el-button type='text' disabled={(scope.$index + 1) == this.tableData.length} onClick={() => { this.moveDown(scope.$index, scope.row) }}>下移</el-button >
</div>
)
}
}
}
],
tableData: []
}
},
watch: {
tableData: {
handler (newValue, oldValue) {
let that = this
if (!_.isEqual(newValue, this.djqx)) {
let temp = newValue.some((item, index, array) => {
return item.repeat;
})
if (temp) {
that.$emit('updateValue', {
djqx: newValue,
btnDisabled: true
})
} else {
that.$emit('updateValue', {
djqx: newValue,
btnDisabled: false
],
tableData: []
}
},
watch: {
tableData: {
handler (newValue, oldValue) {
let that = this
if (!_.isEqual(newValue, this.djqx)) {
let temp = newValue.some((item, index, array) => {
return item.repeat;
})
if (temp) {
that.$emit('updateValue', {
djqx: newValue,
btnDisabled: true
})
} else {
that.$emit('updateValue', {
djqx: newValue,
btnDisabled: false
})
}
}
}
},
deep: true
},
deep: true
djqx: {
handler: function (newValue) {
this.tableData = _.cloneDeep(newValue)
this.addIndexes()
},
deep: true
}
},
djqx: {
handler: function (newValue) {
this.tableData = _.cloneDeep(newValue)
methods: {
// 添加索引
addIndexes (data = this.tableData, isAdd = true) {
data.forEach((item, index) => {
if (isAdd) {
item.index = index + 1
}
})
},
handleAdd () {
this.$nextTick(() => {
let container = this.$el.querySelector('.el-table__body-wrapper');
container.scrollTop = container.scrollHeight;
})
this.tableData.push(
{
nodecode: '',
nodename: '',
enabled: '1',
djyy: '',
sfqydjyymb: '0'
}
)
this.addIndexes()
this.key++
},
deep: true
}
},
methods: {
// 添加索引
addIndexes (data = this.tableData, isAdd = true) {
data.forEach((item, index) => {
if (isAdd) {
item.index = index + 1
}
})
},
handleAdd () {
this.$nextTick(() => {
let container = this.$el.querySelector('.el-table__body-wrapper');
container.scrollTop = container.scrollHeight;
})
this.tableData.push(
{
nodecode: '',
nodename: '',
enabled: '1',
djyy: '',
sfqydjyymb: '0'
}
)
this.addIndexes()
this.key++
},
handleMinus (index, row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
handleMinus (index, row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
nodecodeBlur (index, row) {
let list = _.cloneDeep(this.tableData).filter(item => item.bsmSqyw != row.bsmSqyw)
let arr = list.map(item => item.nodecode)
if (arr.includes(row.nodecode)) {
this.$set(row, 'repeat', true)
this.$message.error('登记情形编码不能重复');
} else {
this.$set(row, 'repeat', false)
},
nodecodeBlur (index, row) {
let list = _.cloneDeep(this.tableData).filter(item => item.bsmSqyw != row.bsmSqyw)
let arr = list.map(item => item.nodecode)
if (arr.includes(row.nodecode)) {
this.$set(row, 'repeat', true)
this.$message.error('登记情形编码不能重复');
} else {
this.$set(row, 'repeat', false)
}
},
// 上移下移
moveUpward (index, row) {
upward(index, this.tableData)
this.key++
},
moveDown (index, row) {
down(index, this.tableData)
this.key++
}
},
// 上移下移
moveUpward (index, row) {
upward(index, this.tableData)
this.key++
},
moveDown (index, row) {
down(index, this.tableData)
this.key++
}
}
}
</script>
<style lang='scss' scoped>
.djqxsd {
.repeat {
.el-input__inner {
border-color: red !important;
.djqxsd {
.repeat {
.el-input__inner {
border-color: red !important;
}
}
}
}
</style>
\ No newline at end of file
......
<!--
功能:单元状态设定
* @Description: 单元状态设定
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:10:44
-->
<template>
<div class='该组件名称'>
......@@ -48,108 +50,108 @@
</div>
</template>
<script>
export default {
props: {
ruleForm: {
type: Object, default: {}
export default {
props: {
ruleForm: {
type: Object, default: {}
},
subData: {
type: Object, default: () => {
return {}
}
}
},
subData: {
type: Object, default: () => {
return {}
data () {
return {
dataList: {
sxql: [],
sxzt: []
}
}
}
},
data () {
return {
},
watch: {
dataList: {
sxql: [],
sxzt: []
}
}
},
watch: {
dataList: {
handler (newValue, oldValue) {
this.$emit('updateValue', newValue)
handler (newValue, oldValue) {
this.$emit('updateValue', newValue)
},
deep: true
},
subData: {
handler (newValue, oldValue) {
if (!_.isEqual(newValue.sxql, this.dataList.sxql)) {
this.dataList.sxql = _.cloneDeep(newValue.sxql)
}
if (!_.isEqual(newValue.sxzt, this.dataList.sxzt)) {
this.dataList.sxzt = _.cloneDeep(newValue.sxzt)
}
},
deep: true
},
deep: true
},
subData: {
handler (newValue, oldValue) {
if (!_.isEqual(newValue.sxql, this.dataList.sxql)) {
this.dataList.sxql = _.cloneDeep(newValue.sxql)
}
if (!_.isEqual(newValue.sxzt, this.dataList.sxzt)) {
this.dataList.sxzt = _.cloneDeep(newValue.sxzt)
methods: {
handleSelect (item) {
if (item.checked) {
item.selected = '0'
}
},
deep: true
},
},
methods: {
handleSelect (item) {
if (item.checked) {
item.selected = '0'
handleSelectall () {
this.dataList.sxql.forEach(item => {
item.checked = true
})
},
handleInvert () {
this.dataList.sxql.forEach(item => {
item.checked = false
})
}
},
handleSelectall () {
this.dataList.sxql.forEach(item => {
item.checked = true
})
},
handleInvert () {
this.dataList.sxql.forEach(item => {
item.checked = false
})
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "~@/styles/mixin.scss";
.dyztsd-title {
@include flex;
align-items: center;
justify-content: space-between;
padding-left: 20px;
}
.dyztsd-title {
@include flex;
align-items: center;
justify-content: space-between;
padding-left: 20px;
}
.qlxx-list {
@include flex;
flex-wrap: wrap;
padding-left: 20px;
.qlxx-list {
@include flex;
flex-wrap: wrap;
padding-left: 20px;
li {
width: 33%;
margin-bottom: 15px;
li {
width: 33%;
margin-bottom: 15px;
}
}
}
.screen-list {
@include flex;
align-items: center;
flex-wrap: wrap;
border: 1px solid $borderColor;
border-bottom: none;
li {
.screen-list {
@include flex;
align-items: center;
width: 50%;
line-height: 50px;
border-bottom: 1px solid $borderColor;
padding-left: 20px;
}
flex-wrap: wrap;
border: 1px solid $borderColor;
border-bottom: none;
&-left {
margin-right: 20px;
width: 160px;
white-space: nowrap;
}
li {
@include flex;
align-items: center;
width: 50%;
line-height: 50px;
border-bottom: 1px solid $borderColor;
padding-left: 20px;
}
li:nth-child(odd) {
border-right: 1px solid $borderColor;
&-left {
margin-right: 20px;
width: 160px;
white-space: nowrap;
}
li:nth-child(odd) {
border-right: 1px solid $borderColor;
}
}
}
</style>
\ No newline at end of file
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:10:56
-->
<template>
<dialogBox title="申请业务规则配置" @submitForm="submitForm" @closeDialog="closeDialog" v-model="myValue"
:btnDisabled="btnDisabled">
......@@ -123,248 +128,224 @@
</dialogBox>
</template>
<script>
import { uploadUrl } from '@/api/file'
import djqxsd from './djqxsd.vue'
import clgzsd from './clgzsd.vue'
import dyztsd from './dyztsd.vue'
import { getSqdjywDetail, saveSqdjyw } from '@/api/sysSqdjyw'
export default {
components: {
djqxsd,
clgzsd,
dyztsd
},
props: {
value: { type: Boolean, default: false },
detailList: {
type: Array, default: []
import { uploadUrl } from '@/api/file'
import djqxsd from './djqxsd.vue'
import clgzsd from './clgzsd.vue'
import dyztsd from './dyztsd.vue'
import { getSqdjywDetail, saveSqdjyw } from '@/api/sysSqdjyw'
export default {
components: {
djqxsd,
clgzsd,
dyztsd
},
bsmSqyw: {
type: String, default: ''
},
},
watch: {
value (val) {
this.myValue = val
props: {
value: { type: Boolean, default: false },
detailList: {
type: Array, default: []
},
bsmSqyw: {
type: String, default: ''
},
},
detailList: {
handler: function (newValue) {
if (newValue.length == 0) {
this.getSqdjywDetail(this.bsmSqyw)
} else {
this.titleList = newValue
this.n = 0
this.tn = 0
this.getSqdjywDetail(newValue[0].bsmSqyw)
}
watch: {
value (val) {
this.myValue = val
},
deep: true
}
},
data () {
return {
djqx: [],
clzt: [],
myValue: this.value,
btnDisabled: false,
tn: 0,
titleList: [],
imgUploadUrl: uploadUrl(),
n: 0,
leftList: [
{
name: '业务详情',
select: true
detailList: {
handler: function (newValue) {
if (newValue.length == 0) {
this.getSqdjywDetail(this.bsmSqyw)
} else {
this.titleList = newValue
this.n = 0
this.tn = 0
this.getSqdjywDetail(newValue[0].bsmSqyw)
}
},
{
name: '登记情形设定'
deep: true
}
},
data () {
return {
djqx: [],
clzt: [],
myValue: this.value,
btnDisabled: false,
tn: 0,
titleList: [],
imgUploadUrl: uploadUrl(),
n: 0,
leftList: [
{
name: '业务详情',
select: true
},
{
name: '登记情形设定'
},
{
name: '材料规则设定'
},
{
name: '单元状态设定'
}
],
ruleForm: {
qllxbm: '',
qllxmc: '',
sqfl: '',
djlxbm: '',
djlxmc: '',
fqywdylx: '',
djywbm: '',
djywmc: '',
enabled: '1',
flowid: '',
flowparams: '',
djqxcl: '',
sfqydjyymb: '1',
djyy: ''
},
{
name: '材料规则设定'
requested: false,
fileList: [],
options: [],
rules: {
sfqy: [
{ required: true, message: '请选择是否启用', trigger: 'change' },
],
ywlc: [
{ required: true, message: '请输入业务流程ID', trigger: 'blur' },
],
djqxcl: [
{ required: true, message: '请选择登记情形及材料', trigger: 'blur' },
],
djyysz: [
{ required: true, message: '请选择登记原因设置', trigger: 'change' },
],
djyymb: [
{ required: true, message: '请输入登记原因模板', trigger: 'blur' },
],
},
{
name: '单元状态设定'
// 表单提交
subData: {}
};
},
methods: {
getSqdjywDetail (bsmSqyw) {
getSqdjywDetail(bsmSqyw).then(res => {
this.subData = res.result
let { ywDetail } = res.result
this.ruleForm = ywDetail
})
},
handleTitleSelct (obj, index) {
this.n = 0
this.tn = index
this.getSqdjywDetail(obj.bsmSqyw)
},
getDjqxValue (val) {
if (!_.isEqual(val.djqx, this.subData.djqx)) {
this.subData.djqx = val.djqx
this.btnDisabled = val.btnDisabled
}
],
ruleForm: {
qllxbm: '',
qllxmc: '',
sqfl: '',
djlxbm: '',
djlxmc: '',
fqywdylx: '',
djywbm: '',
djywmc: '',
enabled: '1',
flowid: '',
flowparams: '',
djqxcl: '',
sfqydjyymb: '1',
djyy: ''
},
requested: false,
fileList: [],
options: [],
rules: {
sfqy: [
{ required: true, message: '请选择是否启用', trigger: 'change' },
],
ywlc: [
{ required: true, message: '请输入业务流程ID', trigger: 'blur' },
],
djqxcl: [
{ required: true, message: '请选择登记情形及材料', trigger: 'blur' },
],
djyysz: [
{ required: true, message: '请选择登记原因设置', trigger: 'change' },
],
djyymb: [
{ required: true, message: '请输入登记原因模板', trigger: 'blur' },
],
getClgzValue (val) {
if (!_.isEqual(val, this.subData.clxx)) {
this.subData.clxx = val
}
},
// 表单提交
subData: {}
};
},
methods: {
getSqdjywDetail (bsmSqyw) {
getSqdjywDetail(bsmSqyw).then(res => {
this.subData = res.result
let { ywDetail } = res.result
this.ruleForm = ywDetail
})
},
handleTitleSelct (obj, index) {
this.n = 0
this.tn = index
this.getSqdjywDetail(obj.bsmSqyw)
},
getDjqxValue (val) {
if (!_.isEqual(val.djqx, this.subData.djqx)) {
this.subData.djqx = val.djqx
this.btnDisabled = val.btnDisabled
}
},
getClgzValue (val) {
if (!_.isEqual(val, this.subData.clxx)) {
this.subData.clxx = val
}
},
// 单元状态设定
getDyztsdValue (val) {
if (!_.isEqual(val.sxql, this.subData.sxql)) {
this.subData.sxql = val.sxql
}
if (!_.isEqual(val.sxzt, this.subData.sxzt)) {
this.subData.sxzt = val.sxzt
}
},
submitForm () {
this.$refs['ruleForm'].validate(async (valid) => {
let that = this
if (valid) {
this.subData.ywDetail = this.ruleForm
saveSqdjyw(this.subData).then(res => {
if (res.code == 200) {
that.$message({
message: '修改成功',
type: 'success'
})
// that.$emit('input', false)
}
// 单元状态设定
getDyztsdValue (val) {
if (!_.isEqual(val.sxql, this.subData.sxql)) {
this.subData.sxql = val.sxql
}
if (!_.isEqual(val.sxzt, this.subData.sxzt)) {
this.subData.sxzt = val.sxzt
}
},
submitForm () {
this.$refs['ruleForm'].validate(async (valid) => {
let that = this
if (valid) {
this.subData.ywDetail = this.ruleForm
saveSqdjyw(this.subData).then(res => {
if (res.code == 200) {
that.$message({
message: '修改成功',
type: 'success'
})
// that.$emit('input', false)
}
})
} else {
this.$message('请检查表单完整性')
return false
}
})
},
closeDialog () {
this.$emit('input', false)
},
hanldeItem (index) {
this.n = index
},
uploadRecord (file) {
this.requested = true
this.files = file;
const extension = file.name.split('.')[1] === 'xls'
const extension2 = file.name.split('.')[1] === 'xlsx'
const isLt5M = file.size / 1024 / 1024 < 5
if (!extension && !extension2) {
this.$message.warning('上传模板只能是 xls、xlsx格式!')
this.requested = false
}
if (!isLt5M) {
this.$message.warning('上传模板大小不能超过 5MB!')
this.requested = false
}
return (extension || extension2) && isLt5M
},
handleSuccess (res) {
if (res.code === 200) {
this.requested = false
this.$message({
message: '上传成功',
type: 'success',
})
} else {
this.$message('请检查表单完整性')
return false
this.loading = false
this.$message.error(res.message)
}
})
},
closeDialog () {
this.$emit('input', false)
},
hanldeItem (index) {
this.n = index
},
uploadRecord (file) {
this.requested = true
this.files = file;
const extension = file.name.split('.')[1] === 'xls'
const extension2 = file.name.split('.')[1] === 'xlsx'
const isLt5M = file.size / 1024 / 1024 < 5
if (!extension && !extension2) {
this.$message.warning('上传模板只能是 xls、xlsx格式!')
this.requested = false
}
if (!isLt5M) {
this.$message.warning('上传模板大小不能超过 5MB!')
this.requested = false
}
return (extension || extension2) && isLt5M
},
handleSuccess (res) {
if (res.code === 200) {
this.requested = false
this.$message({
message: '上传成功',
type: 'success',
})
} else {
this.loading = false
this.$message.error(res.message)
}
}
}
};
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
/deep/.el-radio {
margin-right: 0;
}
/deep/.el-radio__label {
padding-left: 2px;
}
@import "~@/styles/mixin.scss";
.active {
background: $light-blue !important;
color: #fff;
}
.edit-title-list {
@include flex;
li {
flex: 1;
@include flex-center;
border: 1px solid $borderColor;
line-height: 36px;
margin-bottom: 10px;
cursor: pointer;
transition: all 0.3s;
&:hover {
@extend .active;
}
/deep/.el-radio {
margin-right: 0;
}
}
.sqywgz-edit {
@include flex;
width: 100%;
height: 563px;
&-left {
width: 26px;
/deep/.el-radio__label {
padding-left: 2px;
}
.active {
background: $light-blue !important;
color: #fff;
}
.edit-title-list {
@include flex;
li {
flex: 1;
@include flex-center;
background-color: #E4E7ED;
border-bottom-right-radius: 5px;
padding: 15px;
border: 1px solid $borderColor;
line-height: 36px;
margin-bottom: 10px;
cursor: pointer;
transition: all 0.3s;
......@@ -372,16 +353,38 @@ export default {
@extend .active;
}
}
li:not(:last-child) {
margin-bottom: 10px;
}
}
&-right {
margin-left: 20px;
flex: 1;
.sqywgz-edit {
@include flex;
width: 100%;
height: 563px;
&-left {
width: 26px;
li {
@include flex-center;
background-color: #e4e7ed;
border-bottom-right-radius: 5px;
padding: 15px;
cursor: pointer;
transition: all 0.3s;
&:hover {
@extend .active;
}
}
li:not(:last-child) {
margin-bottom: 10px;
}
}
&-right {
margin-left: 20px;
flex: 1;
width: 100%;
}
}
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:11:05
-->
<template>
<div>
<ul class="edit-title-list" v-if="djlxList.length > 0">
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:11:20
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
......@@ -36,65 +41,65 @@
</div>
</template>
<script>
import table from "@/utils/mixin/table";
import editDialog from "./components/editDialog.vue";
import componentDialog from "./sqywDetail.vue";
import { datas, sendThis } from "./sqywgzdata";
import { getSysSqdjywBysearch, getDjlxInfo } from "@/api/sysSqdjyw.js";
export default {
name: "djbcx",
components: {
editDialog,
componentDialog,
},
mixins: [table],
mounted () {
sendThis(this);
this.queryClick();
},
data () {
return {
qllxmc: "",
isDialog: false,
queryForm: {
qllx: "",
djywbm: "",
},
qllxs: datas.qllxs(),
tableData: {
total: 0,
columns: datas.columns(),
data: [],
},
detailList: [],
bsmSqyw: "",
sqqlRule: "",
};
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading();
getSysSqdjywBysearch({ ...this.queryForm, ...this.pageData }).then(
(res) => {
this.$endLoading();
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.total = total ? total : 0;
this.tableData.data = records ? records : [];
}
}
);
import table from "@/utils/mixin/table";
import editDialog from "./components/editDialog.vue";
import componentDialog from "./sqywDetail.vue";
import { datas, sendThis } from "./sqywgzdata";
import { getSysSqdjywBysearch, getDjlxInfo } from "@/api/sysSqdjyw.js";
export default {
name: "djbcx",
components: {
editDialog,
componentDialog,
},
mixins: [table],
mounted () {
sendThis(this);
this.queryClick();
},
// 修改
editClick (row) {
this.sqqlRule = row;
// this.dialogVisible = true;
this.$popupDialog(row.nodename, "system/sqywgz/sqywDetail", this.sqqlRule, '80%')
data () {
return {
qllxmc: "",
isDialog: false,
queryForm: {
qllx: "",
djywbm: "",
},
qllxs: datas.qllxs(),
tableData: {
total: 0,
columns: datas.columns(),
data: [],
},
detailList: [],
bsmSqyw: "",
sqqlRule: "",
};
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading();
getSysSqdjywBysearch({ ...this.queryForm, ...this.pageData }).then(
(res) => {
this.$endLoading();
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.total = total ? total : 0;
this.tableData.data = records ? records : [];
}
}
);
},
// 修改
editClick (row) {
this.sqqlRule = row;
// this.dialogVisible = true;
this.$popupDialog(row.nodename, "system/sqywgz/sqywDetail", this.sqqlRule, '80%')
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/public.scss";
</style>
......
<!--
功能:高级搜索
作者:calliope
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:08:17
-->
<template>
<dialogBox :isButton="false" :isFullscreen="false" width="50%" @closeDialog="closeDialog" v-model="myValue"
......@@ -9,7 +10,7 @@
<el-row>
<el-col :span="8">
<el-form-item label="申请业务名称" prop="sqywmc">
<el-input v-model="ruleForm.sqywmc" placeholder="请输入申请业务名称"></el-input>
<el-input v-model="ruleForm.sqywmc" placeholder="请输入申请业务名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -42,63 +43,63 @@
</template>
<script>
export default {
props: {
value: { type: Boolean, default: false },
advancedForm:{type: Object, default: "" }
},
data () {
return {
myValue: this.value,
ruleForm: {
sqywmc: '',
qlrmc: '',
ywrmc: '',
slsj: ''
}
}
},
watch: {
value (val) {
this.myValue = val
export default {
props: {
value: { type: Boolean, default: false },
advancedForm: { type: Object, default: "" }
},
advancedForm(){
this.ruleForm={...this.advancedForm}
}
},
methods: {
closeDialog () {
this.$emit('input', false)
data () {
return {
myValue: this.value,
ruleForm: {
sqywmc: '',
qlrmc: '',
ywrmc: '',
slsj: ''
}
}
},
resetForm () {
this.$refs['ruleForm'].resetFields()
this.ruleForm={
sqywmc: '',
qlrmc: '',
ywrmc: '',
slsj: ''
watch: {
value (val) {
this.myValue = val
},
advancedForm () {
this.ruleForm = { ...this.advancedForm }
}
},
submitForm () {
this.$emit('getSearch', _.cloneDeep(this.ruleForm))
this.$emit('input', false)
this.$refs['ruleForm'].resetFields()
methods: {
closeDialog () {
this.$emit('input', false)
},
resetForm () {
this.$refs['ruleForm'].resetFields()
this.ruleForm = {
sqywmc: '',
qlrmc: '',
ywrmc: '',
slsj: ''
}
},
submitForm () {
this.$emit('getSearch', _.cloneDeep(this.ruleForm))
this.$emit('input', false)
this.$refs['ruleForm'].resetFields()
}
}
}
}
</script>
<style scoped lang='scss'>
@import '~@/styles/public.scss';
@import "~@/styles/public.scss";
.search-btn {
padding: 0 20px 20px 20px;
text-align: right;
}
.search-btn {
padding: 0 20px 20px 20px;
text-align: right;
}
/deep/.el-icon-date {
display: none;
}
/deep/.el-icon-date {
display: none;
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-13 16:31:05
* @LastEditTime: 2023-07-19 14:38:31
-->
<template>
<div class="from-clues">
......@@ -114,7 +114,7 @@
class="loadingtext"
@sort-change="handleSort"
:current-page.sync="pageData.currentPage"
:heightNum="295"
:heightNum="305"
:total="tableData.total"
@size-change="handleSizeChange"
@p-current-change="handleCurrentChange"
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 13:59:35
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
......@@ -12,7 +17,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="4">
<el-form-item label="登记类型">
<el-select v-model="queryForm.djlx" filterable class="width100" clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
......@@ -23,7 +28,7 @@
<el-col :span="4">
<el-form-item label="权属状态">
<el-select v-model="queryForm.qszt" filterable class="width100" clearable placeholder="请选择登记类型">
<el-option
<el-option
v-for="item in qsztlist"
:key="item.dcode"
:label="item.dname"
......@@ -44,7 +49,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col :span="5">
<el-form-item label="业务号:">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" clearable class="width100">
......@@ -89,22 +94,22 @@
</div>
</template>
<script>
import { mapGetters } from "vuex";
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./djbcxdata";
import { getDjbBysearch } from "@/api/search.js";
import { mapGetters } from "vuex";
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./djbcxdata";
import { getDjbBysearch } from "@/api/search.js";
export default {
name: "djbcx",
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
data () {
return {
// 权属状态
qsztlist: [
export default {
name: "djbcx",
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
data () {
return {
// 权属状态
qsztlist: [
{
dcode: "1",
dname: "现势",
......@@ -113,90 +118,90 @@ export default {
dcode: "2",
dname: "历史",
},
],
queryForm: {
qszt: "1",
qllx: "",
bdcdyh: "",
bdcqzh: "",
ywh: "",
],
queryForm: {
qszt: "1",
qllx: "",
bdcdyh: "",
bdcqzh: "",
ywh: "",
},
pageData: {
current: 1,
size: 10,
total: 0,
},
tableData: {
columns: datas.columns(),
data: [],
},
qllxs: [],
isDialog: false,
djbxxData: {},
};
},
computed: {
...mapGetters(["dictData"]),
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading()
getDjbBysearch({ ...this.queryForm, ...this.pageData }).then((res) => {
this.$endLoading()
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.data = records;
this.tableData.total = total;
}
});
},
pageData: {
current: 1,
size: 10,
total: 0,
handleSort (name, sort) {
console.log(name, sort);
},
tableData: {
columns: datas.columns(),
data: [],
// 高级查询
moreQueryClick () { },
openDialog (scroll) {
this.$popupDialog('登记簿详情', 'registerBook/djbFrame', scroll, '85%');
},
qllxs: [],
isDialog: false,
djbxxData: {},
};
},
computed: {
...mapGetters(["dictData"]),
},
methods: {
// 初始化数据
queryClick () {
this.$startLoading()
getDjbBysearch({ ...this.queryForm, ...this.pageData }).then((res) => {
this.$endLoading()
if (res.code === 200) {
let { total, records } = res.result;
this.tableData.data = records;
this.tableData.total = total;
}
});
},
handleSort (name, sort) {
console.log(name, sort);
},
// 高级查询
moreQueryClick () { },
openDialog (scroll) {
this.$popupDialog('登记簿详情', 'registerBook/djbFrame', scroll, '85%');
},
handleLpbClick (item) {
this.$popupDialog('楼盘表', 'lpb/index', {
bsm: ''
}, '85%')
},
// ywhClick (item) {
// const { href } = this.$router.resolve(
// "/djbworkFrame?bdcdyid=" +
// item.bdcdyid+
// "&bdcdyh=" +
// item.bdcdyh+
// "&qllx="+
// item.qllx+
// "&bsmQlxx="+
// item.bsmQlxx+
// "&viewtype=1"
// );
// localStorage.setItem('ywbl', JSON.stringify(item));
// window.open(href, `urlname${item.bdcdyid}`);
handleLpbClick (item) {
this.$popupDialog('楼盘表', 'lpb/index', {
bsm: ''
}, '85%')
},
// ywhClick (item) {
// const { href } = this.$router.resolve(
// "/djbworkFrame?bdcdyid=" +
// item.bdcdyid+
// "&bdcdyh=" +
// item.bdcdyh+
// "&qllx="+
// item.qllx+
// "&bsmQlxx="+
// item.bsmQlxx+
// "&viewtype=1"
// );
// localStorage.setItem('ywbl', JSON.stringify(item));
// window.open(href, `urlname${item.bdcdyid}`);
// },
// },
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
@import "~@/styles/public.scss";
.icon-circle {
position: relative;
}
.icon-circle {
position: relative;
}
.icon-circle::before {
content: "";
width: 4px;
height: 4px;
border-radius: 50%;
background: #000;
top: 0px;
left: 0px;
}
.icon-circle::before {
content: "";
width: 4px;
height: 4px;
border-radius: 50%;
background: #000;
top: 0px;
left: 0px;
}
</style>
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 13:59:55
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:00:03
-->
<template>
<div class="from-clues">
<!-- 楼盘查询 -->
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-19 14:07:38
-->
<template>
<div class="from-clues">
<!-- 表单部分 -->
......