response/target/classes/public/renkoudatamanage.html
2025-06-27 10:04:22 +08:00

372 lines
16 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=0" />
<title></title>
<script src="./lib/jquery/dist/jquery.js"></script>
<script src="./lib/vuejs/vue.js"></script>
<script src="./lib/vuejs/axios.min.js"></script>
<script src="./lib/elementui/index2.15.9v.js"></script>
<!--<script src="./lib/linq.js/Content/Scripts/linq.min.js"></script>-->
<script src="Scripts/linq.js"></script>
<link href="./lib/elementui/index2.15.9v.css" rel="stylesheet" />
<link href="./lib/elementui/theme-green/index.css" rel="stylesheet" />
<link href="./lib/elementui/theme-green/color-green.css" rel="stylesheet" />
<!-- 依 赖 样 式 -->
<link rel="stylesheet" href="component/pear/css/pear.css" />
<!-- 加 载 样 式 -->
<!--<Link rel="stylesheet" href="admin/css/loader.css" />-->
<!-- 布 局 样 式 -->
<!--<Link rel="stylesheet" href="admin/css/admin.css" />-->
<!-- 依 赖 脚 本 -->
<script src="component/layui/layui.js"></script>
<script src="component/pear/pear.js"></script>
<!-- 新增加的layui的框架 -->
<!--<Link href="Scripts/layui/css/layui.css" rel="stylesheet" />
<script src="Scripts/layui/layui.js"></script>-->
<!--新增加的vxe表格组件-->
<!-- 引入样式 -->
<link rel="stylesheet" href="./lib/vxetable/vxe_style.css">
<!-- 引入脚本 -->
<script src="./lib/vxetable/xe-utils.js"></script>
<script src="./lib/vxetable/vxe-table@legacy.js"></script>
</head>
<body>
<div id="app">
<div style=" width:100%; height:22px;background-color:aquamarine; text-align:center; padding:8px">人口统计管理</div>
<vxe-toolbar>
<template #buttons>
<vxe-button icon="vxe-icon-square-plus" @click="insertEvent()">新增</vxe-button>
<!--<vxe-button icon="vxe-icon-cloud-upload" @click="uploadFileEvent()">导入</vxe-button>-->
<!-- <div style=" border:1px solid dashed; padding:2px; margin-left:12px;margin-right:12px; border-radius:4px; background-color:#eee6e6e1">-->
<!-- <input type="file" @change="handleFileUpload">-->
<!-- <vxe-button icon="vxe-icon-cloud-download" @click="upload()">导入</vxe-button>-->
<!-- </div>-->
<!-- <vxe-button icon="vxe-icon-cloud-download" @click="exportData()">导出</vxe-button>-->
</template>
</vxe-toolbar>
<vxe-table border
resizable
show-overflow
ref="xTable"
height="500"
:row-config="{isHover: true}"
:data="tableData"
@cell-dblclick="cellDBLClickEvent">
<vxe-column type="seq" width="60"></vxe-column>
<vxe-column field="id" title="id" ></vxe-column>
<vxe-column field="quxian" title="地区名称"></vxe-column>
<vxe-column field="nianfen" title="年份"></vxe-column>
<!--<vxe-column field="MIANJI" title="面积"></vxe-column>-->
<vxe-column field="renkou" title="人口"></vxe-column>
<!--<vxe-column field="MIDU" title="密度"></vxe-column>-->
<vxe-column field="datasource_name" title="数据来源" show-overflow></vxe-column>
<vxe-column title="操作" width="100" show-overflow>
<template #default="{ row }">
<vxe-button type="text" icon="vxe-icon-edit" @click="editEvent(row)"></vxe-button>
<vxe-button type="text" icon="vxe-icon-delete" @click="removeEvent(row)"></vxe-button>
</template>
</vxe-column>
</vxe-table>
<vxe-pager :loading="loading1"
:current-page="tablePage1.currentPage"
:page-size="tablePage1.pageSize"
:total="tablePage1.totalResult"
:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
@page-change="handlePageChange1">
</vxe-pager>
<vxe-modal v-model="showEdit" :title="selectRow ? '编辑&保存' : '新增&保存'" width="800" min-width="600" min-height="300" :loading="submitLoading" resize destroy-on-close>
<template #default>
<vxe-form :data="formData" :rules="formRules" title-align="right" title-width="100" @submit="submitEvent">
<div style="visibility:hidden">
<vxe-form-item field="id" title="内部编号" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.id" placeholder="内部编号" readonly></vxe-input>
</template>
</vxe-form-item>
</div>
<vxe-form-item title="基本信息管理" title-align="left" :title-width="200" :span="24" :title-prefix="{icon: 'vxe-icon-comment'}"></vxe-form-item>
<vxe-form-item field="quxian" title="地区名称" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.quxian" placeholder="请输入区县名称"></vxe-input>
</template>
</vxe-form-item>
<vxe-form-item field="nianfen" title="年份" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.nianfen" placeholder="请输入年份内容 "></vxe-input>
</template>
</vxe-form-item>
<!--<vxe-form-item field="MIANJI" title="面积" :span="12" :item-render="{}">--><!-- -->
<!--<template #default="{ data }">
<vxe-input v-model="data.MIANJI" placeholder="请输入面积信息"></vxe-input>
</template>
</vxe-form-item>-->
<vxe-form-item field="renkou" title="人口" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.renkou" type="number" placeholder="请输入人口数量"></vxe-input>
<!--vxe-select v-model="data.RENKOU" transfer>
<vxe-option v-for="item in sexList" :key="item.value" :value="item.value" :label="item.label"></vxe-option>
</vxe-select>-->
</template>
</vxe-form-item>
<!--<vxe-form-item field="MIDU" title="密度" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.MIDU" placeholder="请输入密度数据"></vxe-input>
</template>
</vxe-form-item>-->
<vxe-form-item field="datasource_name" title="数据来源" :span="12" :item-render="{}">
<template #default="{ data }">
<vxe-input v-model="data.datasource_name" placeholder="请输入数据来源"></vxe-input>
<!--<vxe-radio-group v-model="data.flag1">
<vxe-radio label="Y" content="是"></vxe-radio>
<vxe-radio label="N" content="否"></vxe-radio>
</vxe-radio-group>-->
</template>
</vxe-form-item>
<vxe-form-item align="center" title-align="left" :span="24">
<template #default>
<vxe-button type="submit">提交</vxe-button>
<vxe-button type="reset">重置</vxe-button>
</template>
</vxe-form-item>
</vxe-form>
</template>
</vxe-modal>
</div>
</body>
</html>
<style>
</style>
<script>
///////////////////////////////////////////////////
//该部分是Vue应用封装
var app = new Vue({
el: '#app',
data() {
return {
//=====================第四步的相关参数开始===================
submitLoading: false,
tableData: [],
//分页开始
loading1: false,
tablePage1: {
currentPage: 1,
pageSize: 10,
totalResult: 0,
},
//分页结束
selectRow: null,
showEdit: false,
//sexList: [
// { label: '女', value: '0' },
// { label: '男', value: '1' }
//],
formData: {
quxian: null,
nianfen: null,
renkou: null,
datasource_name: null
},
formRules: {
//QUXIAN: [
// { required: true, message: '请输入名称' },
// { min: 3, max: 5, message: '长度在 3 到 5 个字符' }
//],
quxian: [
{ required: true, message: '请输入地区名称' }
],
nianfen: [
{ required: true, message: '请输入年份' }
],
renkou: [
{ required: true, message: '请输入人口' }
],
datasource_name: [
{ required: true, message: '请输入数据来源' }
]
}
}
},
mounted() {
//var _this = this; //this指向vue
this.getData();
},
methods: {
//选择上传文件
handleFileUpload(event) {
this.file = event.target.files[0];
},
//上传操作
upload() {
const formData = new FormData();
formData.append('file', this.file);
axios.post('/renkou/ImportExcel', formData, {
headers: { 'Content-Type': 'multipart/form-data' },
params: { 'username': 'aaa', "FileName": Date.now(), module: 'renkoudata' }
})
.then(response => {
// 处理上传成功事件
this.getData();
})
.catch(error => {
// 处理上传失败事件
VXETable.modal.message({ content: '查询没有成功,请检查!', status: 'error' })
});
},
//获取数据,待改造
getData() {
var _this = this;
this.loading1 = true
axios.get(
//int page, int limit,
"./RenKou/GetSearch?page=" + this.tablePage1.currentPage + "&limit=" + this.tablePage1.pageSize
).then((res) => {
console.log('aaaa', res);
if (res.data.msg == "success") {
//VXETable.modal.message({ content: '新增成功', status: 'success' })
//$table.insert(this.formData)
_this.loading1 = false;
this.tablePage1.totalResult = res.data.total
this.tableData=res.data.data
}
else {
VXETable.modal.message({ content: '查询没有成功,请检查!', status: 'error' })
}
});
},
//分页功能
handlePageChange1({ currentPage, pageSize }) {
this.tablePage1.currentPage = currentPage
this.tablePage1.pageSize = pageSize
this.getData()
},
//暂时未用
visibleMethod({ data }) {
return data.flag1 === 'Y'
},
//暂时未用
cellDBLClickEvent({ row }) {
this.editEvent(row)
},
//增加方法
insertEvent() {
this.formData = {
quxian: '',
nianfen: '',
renkou: '',
datasource_name: ''
}
this.selectRow = null
this.showEdit = true
},
//修改方法
editEvent(row) {
this.formData = {
id:row.id,
quxian: row.quxian,
nianfen: row.nianfen,
renkou: row.renkou,
datasource_name: row.datasource_name //MIANJI: row.MIANJI,
}
this.selectRow = row
this.showEdit = true
},
//异步删除方法
async removeEvent(row) {
const type = await VXETable.modal.confirm('您确定要删除该数据?')
const $table = this.$refs.xTable
if (type === 'confirm') {
console.log('remove', row);
axios.get(
"./RenKou/RemoveData?data=" + JSON.stringify(row)
).then((res) => {
if (res.data.msg == "success") {
VXETable.modal.message({ content: '删除成功', status: 'success' })
//Object.assign(this.selectRow, this.formData)
$table.remove(row)
} else {
VXETable.modal.message({ content: '删除没有成功', status: 'error' })
}
});
}
},
//提交操作方法
submitEvent() {
this.submitLoading = true
var _this = this; //this指向vue
setTimeout(() => {
const $table = this.$refs.xTable
this.submitLoading = false
this.showEdit = false
if (this.selectRow) {
console.log('数据', this.selectRow, this.formData);
axios.get(
"./RenKou/UpdateData?data=" + JSON.stringify(this.formData)
).then((res) => {
if (res.data.msg == "success") {
VXETable.modal.message({ content: '保存成功', status: 'success' })
Object.assign(this.selectRow, this.formData)
} else {
VXETable.modal.message({ content: '保存没有成功,请检查!', status: 'error' })
}
});
} else {
axios.get(
"./RenKou/AddData?data=" + JSON.stringify(this.formData)
).then((res) => {
console.log('aaaa',res);
if (res.data.msg == "success") {
VXETable.modal.message({ content: '新增成功', status: 'success' })
$table.insert(this.formData)
}
else {
VXETable.modal.message({ content: '新增没有成功,请检查!', status: 'error' })
}
});
}
}, 500)
},
// 导出操作
exportData() {
window.location.href = './PageCache/GenExportResult?name=人口数量数据&strsql=select QUXIAN as 地区名称,NIANFEN as 年份,RENKOU as 人口,DATASOURCE_NAME as 数据源 from RenKouData';
}
}
})
///////////////////////////////////////////////////
</script>