xy 1 year ago
parent e0c919e41d
commit 98dcadb1dc

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

@ -36,7 +36,7 @@
transition: opacity 1.5s;
}
.sidebar-name-logo {
width: 145px;
width: 150px;
object-fit: contain;
}
@ -62,8 +62,8 @@
align-items: center;
& .sidebar-logo {
width: 38px;
height: 38px;
width: 32px;
height: 32px;
vertical-align: middle;
margin-right: 12px;
}

@ -1,6 +1,6 @@
module.exports = {
//无锡交通产业集团
title: '无锡交通产业集团',
//无锡交通产业集团,资产管理平台
title: '无锡交通产业集团资产管理平台',
/**
* @type {boolean} true | false

@ -31,7 +31,7 @@ export async function resolveFormInfo(customFormId) {
i._relations = relation.find(
(j) => j.link_table_name.split("_")[1] === i.field
);
if (i.select_item && typeof i.select_item === "object") {
if (i.select_item && typeof i.select_item === "object" && !(i.select_item instanceof Array)) {
let keys = Object.keys(i.select_item);
i._params = keys.map((key) => {
return {

@ -0,0 +1,610 @@
<script>
import { CreateDialog } from "@/utils/createDialog";
import { save, index } from '@/api/system/baseForm'
export default {
data() {
return {
leaseId: "",
columns: 1,
row: {},
formInfo: [
{
field: "year",
name: "年份选择",
form_show: 1,
},
{
field: "nianxian",
name: "年限信息",
edit_input: "text",
form_show: 1,
},
// {
// field: "wenjianleixing",
// name: "",
// edit_input: "radio",
// form_show: 1,
// _params: [
// {
// label: "",
// value: ""
// },
// {
// label: "",
// value: ""
// },
// {
// label: "",
// value: ""
// }
// ]
// },
{
field: "tag",
name: "标签",
edit_input: "radio",
form_show: 1,
_params: [
{
label: "工程类",
value: "工程类"
},
{
label: "资产类",
value: "资产类"
}
]
},
{
field: "file",
name: "附件",
edit_input: "files",
form_show: 1
}
],
id: "",
type: "add",
form: {},
originalForm: {},
rules: {},
file: {},
dialogVisible: false,
landSelect: {
table_name: "lands",
keyword: ""
},
houseSelect: {
table_name: "houses",
keyword: ""
},
landDialog: false,
houseDialog: false,
rowPick: {}
}
},
methods: {
index,
show () {
this.dialogVisible = true;
},
hidden () {
this.dialogVisible = false;
},
init() {
for (let key in this.form) {
if (this.form[key] instanceof Array) {
this.form[key] = [];
} else {
this.form[key] = "";
}
}
this.$refs["elForm"].clearValidate();
},
submit() {
if (this.type === "add") {
if (this.form.hasOwnProperty("id")) {
delete this.form.id;
}
}
if (this.type === "editor") {
Object.defineProperty(this.form, "id", {
value: this.id,
enumerable: true,
configurable: true,
writable: true,
});
}
Promise.all(this.file['file'].map(i => save({
table_name: 'asset_file_files',
[this.rowPick.hasOwnProperty('land_id') ? 'house_id' : 'land_id']: this.rowPick.id,
file_id: i?.response?.id,
name: i?.response?.name,
original_name: i?.response?.original_name,
url: i?.response?.url,
...this.form
}))).then(res => {
this.$Message.success({
content: `${this.type === "add" ? "新增" : "编辑"}成功`,
});
this.$emit("refresh");
this.hidden();
})
},
},
computed: {},
watch: {
formInfo: {
handler: function (newVal) {
this.form = {};
this.rules = {};
this.file = {};
newVal.forEach((i) => {
if (i.field) {
this.form[i.field] = "";
if (
i.validation instanceof Array &&
i.validation.length > 0 &&
!!i.validation.find((i) => i === "required")
) {
this.rules[i.field] = [
{ required: true, message: `请填写${i.name}` },
];
}
if (i.edit_input === "files") {
this.form[i.field] = [];
}
if (i.edit_input === "files" || i.edit_input === "file") {
this.file[i.field] = [];
}
if (i.edit_input === "checkbox") {
this.form[i.field] = [];
}
if (i._relations) {
this.form[i._relations?.link_with_name] = [];
}
}
});
this.columns = newVal.length > 11 ? '2' : '1'
},
//immediate: true,
},
dialogVisible(val) {
if (val) {
document.documentElement.style.setProperty(
"--column-num",
this.columns
);
if (this.type === "editor" || this.type === "show") {
this.$nextTick(() => this.getDetail());
}
} else {
this.id = "";
this.type = "";
this.init();
this.$refs["elForm"].clearValidate();
delete this.form.id;
for (let key in this.file) {
this.file[key] = [];
}
}
},
},
created() {
},
render(h) {
let _this = this;
let formRender = new CreateDialog(this, [
{
show: true,
sort: 1,
label: "关联资产",
render: h('div',[
h('Button',{
props: {
type: 'primary'
},
on: {
click: _ => {
_this.houseDialog = true;
}
}
},'房产选择'),
h('Button',{
props: {
type: 'primary'
},
on: {
click: _ => {
_this.landDialog = true;
}
}
},'土地选择'),
h('br'),
h('Tag',{
props: {
color: 'primary',
closable: true
},
style: {
display: _this.rowPick.id ? 'inline-block' : 'none'
},
on: {
['on-close']: _ => {
_this.rowPick = {}
}
}
},_this.rowPick.name)
]),
},
{
show: true,
key: "year",
label: "年份选择",
render: h('el-date-picker',{
props: {
value: _this.form['year'],
type: "year",
valueFormat: "yyyy"
},
style: {
width: "100%"
},
on: {
["input"]:e => {
_this.form['year'] = e;
_this.form = Object.assign({}, _this.form)
}
}
})
}
],{ width: "640px" })
return (
<div>
{
formRender.render()
}
<el-drawer title="土地列表"
visible={this.landDialog}
size="64%"
on={{
['update:visible']: (val) => this.landDialog = val,
}}>
<div style="padding: 0 10px;">
<div>
<Input vModel={this.landSelect.keyword} style="width: 300px;" placeholder="请填写关键词"/>
<Button type="primary"
style="margin-left: 10px;"
on={{
['click']: _ => {
this.$refs['landLinkTable'].getTableData(true)
}
}}>搜索</Button>
</div>
<xy-table
ref="landLinkTable"
table-item={
[
{
"prop": "id",
"width": 60,
"label": "序号"
},
{
"prop": "tudiquanshuren",
"label": "土地权属人",
"width": 0,
"align": "left"
},
{
"prop": "area",
"label": "区域",
"width": 0,
"align": "center"
},
{
"prop": "name",
"label": "地块名称",
"width": 0,
"align": "left",
"fixed": "left"
},
{
"prop": "tudizhenghao",
"label": "土地证号",
"width": 0,
"align": "left"
},
{
"prop": "zuoluo",
"label": "坐落",
"width": 0,
"align": "left"
},
{
"prop": "zichanweizhi",
"label": "资产位置",
"width": 0,
"align": "center"
},
{
"prop": "quanliren",
"label": "证载“权利人”",
"width": 0,
"align": "left"
},
{
"prop": "gongyouqingkuang",
"label": "共有情况",
"width": 0,
"align": "center"
},
{
"prop": "shiyongnianxian",
"label": "使用年限(年)",
"width": 0,
"align": "center"
},
{
"prop": "xianzhuang",
"label": "现状",
"width": 0,
"align": "center"
},
{
"prop": "yongtu",
"label": "用途",
"width": 0,
"align": "left"
},
{
"prop": "shiyongquanleixing",
"label": "使用权类型",
"width": 0,
"align": "center"
},
{
"prop": "lingzhengriqi",
"label": "领证日期",
"width": 0,
"align": "center"
},
{
"prop": "zhongzhiriqi",
"label": "终止日期",
"width": 0,
"align": "center"
},
{
"prop": "dengjimianji",
"label": "登记面积",
"width": 0,
"align": "center"
},
{
"prop": "shijimianji",
"label": "实际面积",
"width": 0,
"align": "center"
},
{
"label": "不符情况",
"width": 0
},
{
"prop": "bufuyuanyin",
"label": "不符原因",
"width": 0,
"align": "center"
},
{
"prop": "ruzhangshijian",
"label": "入账时间",
"width": 0,
"align": "center"
},
{
"prop": "zhangmianyuanzhi",
"label": "账面原值",
"width": 0,
"align": "center"
},
{
"prop": "tudidengji",
"label": "土地等级",
"width": 0,
"align": "center"
},
{
"prop": "tudishuidanjia",
"label": "土地税单价",
"width": 0,
"align": "center"
},
{
"prop": "tudishui",
"label": "土地税",
"width": 0,
"align": "center"
},
{
"prop": "tudishuijiaonazhuti",
"label": "土地税缴纳主体",
"width": 0,
"align": "center"
},
{
"prop": "jiaoshuijine",
"label": "缴税金额",
"width": 0,
"align": "center"
}
]
}
isHandlerKey={false}
action={this.index}
req-opt={this.landSelect}
on={{
['row-click']: ({ row }) => this.rowPick = row
}}
></xy-table>
</div>
</el-drawer>
<el-drawer title="房产列表"
visible={this.houseDialog}
size="64%"
on={{
['update:visible']: (val) => this.houseDialog = val,
}}>
<div style="padding: 0 10px;">
<div>
<Input vModel={this.houseSelect.keyword} style="width: 300px;" placeholder="请填写关键词"/>
<Button type="primary"
style="margin-left: 10px;"
on={{
['click']: _ => {
this.$refs['houseLinkTable'].getTableData(true)
}
}}>搜索</Button>
</div>
<xy-table
ref="houseLinkTable"
table-item={
[
{
"prop": "id",
"width": 60,
"label": "序号"
},
{
"prop": "quanshuren",
"label": "权属人",
"width": 0,
"align": "center"
},
{
"prop": "area",
"label": "区域",
"width": 0,
"align": "center"
},
{
"prop": "name",
"label": "地块名称",
"width": 0,
"fixed": "left",
"align": "left"
},
{
"prop": "quanzhenghao",
"label": "权证号",
"width": 0,
"align": "center"
},
{
"prop": "zuoluo",
"label": "坐落",
"width": 0,
"align": "left"
},
{
"prop": "zichanweizhi",
"label": "房产位置",
"width": 0,
"align": "center"
},
{
"prop": "quanliren",
"label": "证载“权利人”",
"width": 0,
"align": "center"
},
{
"prop": "yongtu",
"label": "用途",
"width": 0,
"align": "left"
},
{
"prop": "zhuangtai",
"label": "现状",
"width": 0,
"align": "left"
},
{
"prop": "dengjishijian",
"label": "登记时间",
"width": 0,
"align": "center"
},
{
"prop": "dengjimianji",
"label": "登记面积",
"width": 0,
"align": "center"
},
{
"prop": "shijimianji",
"label": "实际面积",
"width": 0,
"align": "center"
},
{
"prop": "bufuyuanyin",
"label": "不符情况",
"width": 0,
"align": "center"
},
{
"prop": "ruzhangshijian",
"label": "入账时间",
"width": 0,
"align": "center"
},
{
"prop": "zhangmianyuanzhi",
"label": "账面原值",
"width": 0,
"align": "center"
},
{
"prop": "guanliantudizhengquanzheng",
"label": "关联土地证权证",
"width": 0,
"align": "center"
},
{
"prop": "shiyongzhuangtai",
"label": "使用状态",
"width": 0,
"align": "center"
}
]
}
isHandlerKey={false}
action={this.index}
req-opt={this.houseSelect}
on={{
['row-click']: ({ row }) => {
this.rowPick = row
console.log(this.rowPick)
}
}}
></xy-table>
</div>
</el-drawer>
</div>
)
}
}
</script>
<style scoped lang="scss">
</style>

@ -21,6 +21,12 @@
>查询</Button>
</div>
</template>
<template #create>
<Button
type="primary"
@click="$refs['add'].show()"
>新增</Button>
</template>
</header-content>
</slot>
</LxHeader>
@ -64,13 +70,15 @@
></iframe>
</template>
</Modal>
<add ref="add" @refresh="$refs['xyTable'].getTableData()"></add>
</div>
</template>
<script>
import { authMixin } from "@/mixin/authMixin";
import { getFiles } from "@/api/common"
import add from "@/views/assets/component/addFiles.vue"
import LxHeader from "@/components/LxHeader/index.vue";
import headerContent from "@/components/LxHeader/XyContent.vue";
import { download } from '@/utils/downloadRequest'
@ -78,7 +86,7 @@ export default {
components: {
LxHeader,
headerContent,
add
},
mixins: [authMixin],
data() {
@ -111,7 +119,7 @@ export default {
width: 180,
align: "left",
customFn: row => {
return (<span>{ row.land.name ? `[土地]${row.land.name}` : `[房产]${row.house.name}` }</span>)
return (<span>{ row.land?.name ? `[土地]${row.land?.name||''}` : (row.house?.name ? `[房产]${row.house?.name||''}` : '暂无') }</span>)
}
},
{
@ -119,7 +127,7 @@ export default {
label: "资产地区",
width: 140,
customFn: row => {
return (<span>{ row.land.area? this.wxAreas[row.land.area-1] : this.wxAreas[row.house.area-1] }</span>)
return (<span>{ row.land?.area? this.wxAreas[row.land?.area-1] : this.wxAreas[row.house?.area-1] }</span>)
}
},
{
@ -137,16 +145,19 @@ export default {
return (
<div>
<Button size="small"
style={{
'display': (row.land?.id || row.house?.id) ? 'inline-block' : 'none'
}}
type="primary"
on={{
['click']: _ => {
if (row.land.id) {
if (row.land?.id) {
this.$router.push({
path: '/landDetail/' + row.land.id
path: '/landDetail/' + row.land?.id
})
} else if (row.house.id) {
} else if (row.house?.id) {
this.$router.push({
path: '/houseDetail/' + row.house.id
path: '/houseDetail/' + row.house?.id
})
} else {}
}

@ -434,7 +434,7 @@ export default {
) || relation.find(
(j) => j.local_key === i.field
);
if (i.select_item && typeof i.select_item === 'object') {
if (i.select_item && typeof i.select_item === "object" && !(i.select_item instanceof Array)) {
let keys = Object.keys(i.select_item)
if (keys.length > 0) {
i._params = keys.map((key) => {

@ -435,7 +435,7 @@ export default {
) || relation.find(
(j) => j.local_key === i.field
);
if (i.select_item && typeof i.select_item === "object") {
if (i.select_item && typeof i.select_item === "object" && !(i.select_item instanceof Array)) {
let keys = Object.keys(i.select_item);
if (keys.length > 0) {
i._params = keys.map((key) => {

@ -334,6 +334,16 @@ export default {
['update:visible']: (val) => this.landDialog = val,
}}>
<div style="padding: 0 10px;">
<div>
<Input vModel={this.landSelect.keyword} style="width: 300px;" placeholder="请填写关键词"/>
<Button type="primary"
style="margin-left: 10px;"
on={{
['click']: _ => {
this.$refs['landLinkTable'].getTableData(true)
}
}}>搜索</Button>
</div>
<xy-table
isHandlerKey={false}
height="600"
@ -504,9 +514,7 @@ export default {
]
}
action={this.index}
req-opt={{
table_name: "lands"
}}
req-opt={this.landSelect}
on={{
['loaded']: _ => {
this.$nextTick(() => {
@ -529,6 +537,16 @@ export default {
['update:visible']: (val) => this.houseDialog = val,
}}>
<div style="padding: 0 10px;">
<div>
<Input vModel={this.houseSelect.keyword} style="width: 300px;" placeholder="请填写关键词"/>
<Button type="primary"
style="margin-left: 10px;"
on={{
['click']: _ => {
this.$refs['houseLinkTable'].getTableData(true)
}
}}>搜索</Button>
</div>
<xy-table
isHandlerKey={false}
height="600"
@ -653,9 +671,7 @@ export default {
]
}
action={this.index}
req-opt={{
table_name: "houses"
}}
req-opt={this.houseSelect}
on={{
['loaded']: _ => {
this.$nextTick(() => {
@ -681,6 +697,14 @@ export default {
landDialog: false,
landSelectTemp: 0,
leasePlans: [],
landSelect: {
table_name: "lands",
keyword: ""
},
houseSelect: {
table_name: "houses",
keyword: ""
},
columns: 1,
row: {},

@ -92,7 +92,8 @@
trigger: 'blur',
validator: validatePassword
}],
code: [{
code: [
{
required: true,
trigger: 'blur',
message: '请输入验证码',
@ -103,7 +104,8 @@
callback()
}
}
}]
}
]
},
msgLoading: false,
loading: false,

Loading…
Cancel
Save