Merge remote-tracking branch 'origin/main'

This commit is contained in:
MDSMO
2025-08-29 19:53:36 +08:00
3 changed files with 180 additions and 249 deletions

View File

@@ -0,0 +1,165 @@
<template>
<div>
<table>
<thead>
<tr>
<th>开始时间</th>
<th>结束时间</th>
<th>学校(单位)名称</th>
<th>职务</th>
<th>证明人</th>
<th style="width: 10rem;">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(v, i) in exp_list" :key="i" class="custom-input">
<td data-label="开始时间">
<span v-if="isEmpty(v.isEdit)">{{ v.startTime }}</span>
<input v-else type="date" v-model="v.startTime" />
</td>
<td data-label="结束时间">
<span v-if="isEmpty(v.isEdit)">{{ v.endTime }}</span>
<input v-else type="date" v-model="v.endTime" />
</td>
<td data-label="学校(单位)名称">
<span v-if="isEmpty(v.isEdit)">{{ v.schoolName }}</span>
<input v-else v-model="v.schoolName" />
</td>
<td data-label="职务">
<span v-if="isEmpty(v.isEdit)">{{ v.post }}</span>
<input v-else v-model="v.post" />
</td>
<td data-label="证明人">
<span v-if="isEmpty(v.isEdit)">{{ v.certifier }}</span>
<input v-else v-model="v.certifier" />
</td>
<td data-label="操作">
<span>查看</span>
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import { getOwnExpFdy } from "@/api/stuCQS/basedata/experience";
import { fullLoading, isEmpty } from "@/api/helpFunc";
export default {
name: "edu-exp-knrd",
props: {
stuNo: {
type: String,
default: ""
},
},
data() {
return {
isEmpty,
exp_list: []
}
},
created() {
this.getOwnExpFdy(this.stuNo);
},
methods: {
async getOwnExpFdy(stuNo) {
let loading = fullLoading(this);
let res = await getOwnExpFdy(stuNo);
loading.close();
if (res.code == 200) {
this.exp_list = res.data;
}
}
}
}
</script>
<style scoped>
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
font-size: 14px;
text-align: left;
}
table th,
table td {
padding: 12px 15px;
border: 1px solid #ddd;
}
table th {
background-color: #f2f2f2;
font-weight: bold;
}
table tr:nth-child(even) {
background-color: #f9f9f9;
}
table tr:hover {
background-color: #f5f5f5;
}
.custom-input input {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
border-radius: 3px;
}
@media screen and (max-width: 600px) {
table {
border: 0;
}
table caption {
font-size: 1.3em;
}
table thead {
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
table tr {
border-bottom: 3px solid #ddd;
display: block;
margin-bottom: .625em;
}
table td {
border-bottom: 1px solid #ddd;
display: block;
font-size: .8em;
text-align: right;
}
table td::before {
content: attr(data-label);
float: left;
font-weight: bold;
text-transform: uppercase;
}
table td:last-child {
border-bottom: 0;
}
}
.note {
max-width: 80%;
margin: 0 auto;
}
</style>

View File

@@ -19,114 +19,51 @@
<tbody>
<tr v-for="(v, i) in family_list" :key="i" class="custom-input">
<td style="width: 5rem;" data-label="姓名">
<span v-if="isEmpty(v.isEdit)">{{ v.familyName }}</span>
<input v-else v-model="v.familyName" />
<span>{{ v.familyName }}</span>
</td>
<td data-label="与学生关系">
<span v-if="isEmpty(v.isEdit)">{{ v.familyRelation }}</span>
<input v-else v-model="v.familyRelation" />
<span>{{ v.familyRelation }}</span>
</td>
<td data-label="年龄">
<span v-if="isEmpty(v.isEdit)">{{ v.age }}</span>
<input v-else type="number" v-model="v.age" />
<span>{{ v.age }}</span>
</td>
<!-- <td data-label="出生日期">
<span v-if="isEmpty(v.isEdit)">{{ v.birthday }}</span>
<input v-else type="date" v-model="v.birthday" />
</td> -->
<td data-label="政治面貌">
<span v-if="isEmpty(v.isEdit)">{{ v.zzmm }}</span>
<input v-else v-model="v.zzmm" />
<span>{{ v.zzmm }}</span>
</td>
<td data-label="职业">
<span v-if="isEmpty(v.isEdit)">{{ v.job }}</span>
<input v-else v-model="v.job" />
<span>{{ v.job }}</span>
</td>
<td data-label="工作单位">
<span v-if="isEmpty(v.isEdit)">{{ v.workPlace }}</span>
<input v-else v-model="v.workPlace" />
<span>{{ v.workPlace }}</span>
</td>
<td data-label="年收入">
<span v-if="isEmpty(v.isEdit)">{{ v.yearMoney }}</span>
<input type="number" v-else v-model="v.yearMoney" />
<span>{{ v.yearMoney }}</span>
</td>
<td data-label="联系电话">
<span v-if="isEmpty(v.isEdit)">{{ v.phone }}</span>
<input v-else v-model="v.phone" />
<span>{{ v.phone }}</span>
</td>
<td data-label="健康情况">
<span v-if="isEmpty(v.isEdit)">{{ v.health }}</span>
<input v-else v-model="v.health" />
<span>{{ v.health }}</span>
</td>
<td data-label="操作">
<el-button v-if="!isEmpty(v.isEdit)" @click="doEdit(v)" type="text" icon="el-icon-check">
保存
</el-button>
<el-button v-if="isEmpty(v.isEdit)" :disabled="oneEdit" @click="willEdit(v)" type="text"
icon="el-icon-edit">
修改
</el-button>
<el-button @click="doDelete(v)" type="text" icon="el-icon-delete">删除</el-button>
<span>查看</span>
</td>
</tr>
<tr v-if="addV">
<td data-label="姓名">
<input v-model="addForm.familyName" />
</td>
<td data-label="与学生关系">
<input v-model="addForm.familyRelation" />
</td>
<td data-label="年龄">
<input type="number" v-model="addForm.age" />
</td>
<!-- <td data-label="出生日期">
<input type="date" v-model="addForm.birthday" />
</td> -->
<td data-label="政治面貌">
<input v-model="addForm.zzmm" />
</td>
<td data-label="职业">
<input v-model="addForm.job" />
</td>
<td data-label="工作单位">
<input v-model="addForm.workPlace" />
</td>
<td data-label="年收入">
<input type="number" v-model="addForm.yearMoney" />
</td>
<td data-label="联系电话">
<input v-model="addForm.phone" />
</td>
<td data-label="健康情况">
<input v-model="addForm.health" />
</td>
<td data-label="操作">
<el-button @click="doAdd" type="text" icon="el-icon-check">保存</el-button>
<el-button @click="addV = false;" type="text" icon="el-icon-close">取消</el-button>
</td>
</tr>
<tr>
<td colspan="9" style="text-align: center;">
<el-button @click="addV = true;" :disabled="addV" style="display: inline-block;" type="text"
icon="el-icon-plus">新增一条</el-button>
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import { getOwnFamilyFdy, addOwnFamilyFdy, deleteOwnFamilyFdy, editOwnFamilyFdy } from "@/api/stuCQS/basedata/member";
import { getOwnFamilyFdy } from "@/api/stuCQS/basedata/member";
import { fullLoading, isEmpty } from "@/api/helpFunc";
import {
getOwnInfo
} from "@/api/stuCQS/basedata/student";
export default {
name: "family-member",
@@ -139,191 +76,20 @@ export default {
data() {
return {
isEmpty,
family_list: [],
addV: false,
addForm: {
},
editForm: {
},
oneEdit: false,
ownPhone: null
family_list: []
}
},
created() {
// this.getOwnInfo();
this.getOwnFamilyFdy(this.stuNo);
},
methods: {
async getOwnInfo() {
let res = await getOwnInfo();
if (res.code == 200) {
if (!isEmpty(res.data)) {
let data = {
...res.data
};
this.ownPhone = data.phone;
}
}
},
willEdit(v) {
this.editForm = { ...v };
v.isEdit = true;
this.oneEdit = true;
},
async doEdit(v) {
let sdata = { ...v };
if (isEmpty(sdata.familyName)) {
this.$message.info("请填写成员名称");
return;
}
if (isEmpty(sdata.age)) {
this.$message.info("请填写成员年龄");
return;
}
if (isEmpty(sdata.familyRelation)) {
this.$message.info("请填写与学生关系");
return;
}
// if (isEmpty(sdata.birthday)) {
// this.$message.info("请填写出生日期");
// return;
// }
if (isEmpty(sdata.zzmm)) {
this.$message.info("请填写政治面貌");
return;
}
if (isEmpty(sdata.job)) {
this.$message.info("请填写职业");
return;
}
if (isEmpty(sdata.workPlace)) {
this.$message.info("请填写工作单位");
return;
}
if (isEmpty(sdata.yearMoney)) {
this.$message.info("请填写年收入");
return;
}
if (isEmpty(sdata.phone)) {
this.$message.info("请填写联系方式");
return;
}
if (sdata.phone == this.ownPhone) {
this.$message.info("不能填写本人电话");
return;
}
if (isEmpty(sdata.health)) {
this.$message.info("请填写健康情况");
return;
}
let loading = fullLoading(this);
sdata.stuNo = this.stuNo;
let res = await editOwnFamilyFdy(sdata);
loading.close();
if (res.code == 200) {
this.$message.success(res.msg);
this.getOwnFamilyFdy(this.stuNo);
}
this.oneEdit = false;
v.isEdit = undefined;
},
async doAdd() {
let sdata = { ...this.addForm };
if (isEmpty(sdata.familyName)) {
this.$message.info("请填写成员名称");
return;
}
if (isEmpty(sdata.familyRelation)) {
this.$message.info("请填写与学生关系");
return;
}
// if (isEmpty(sdata.birthday)) {
// this.$message.info("请填写出生日期");
// return;
// }
if (isEmpty(sdata.zzmm)) {
this.$message.info("请填写政治面貌");
return;
}
if (isEmpty(sdata.job)) {
this.$message.info("请填写职业");
return;
}
if (isEmpty(sdata.workPlace)) {
this.$message.info("请填写工作单位");
return;
}
if (isEmpty(sdata.yearMoney)) {
this.$message.info("请填写年收入");
return;
}
if (isEmpty(sdata.phone)) {
this.$message.info("请填写联系方式");
return;
}
if (sdata.phone == this.ownPhone) {
this.$message.info("不能填写本人电话");
return;
}
if (isEmpty(sdata.health)) {
this.$message.info("请填写健康情况");
return;
}
let loading = fullLoading(this);
sdata.stuNo = this.stuNo;
let res = await addOwnFamilyFdy(sdata);
loading.close();
if (res.code == 200) {
this.addForm = {};
this.$message.success(res.msg);
this.getOwnFamilyFdy(this.stuNo);
}
this.addV = false;
},
async getOwnFamilyFdy(stuNo) {
let loading = fullLoading(this);
let res = await getOwnFamilyFdy(stuNo);
loading.close();
if (res.code == 200) {
this.family_list = [...res.data];
}
},
async doDelete(val) {
let id = val.id;
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
let loading = fullLoading(this);
let res = await deleteOwnFamilyFdy(id,this.stuNo);
loading.close();
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getOwnFamilyFdy(this.stuNo);
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
}
}

View File

@@ -36,7 +36,7 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy `http://124.70.202.11:8085` https://wap.wzzyhp.com
[process.env.VUE_APP_BASE_API]: {
// target: 'http://172.16.96.111:8585', //`http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
target: 'http://localhost:8088',// `http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
target: 'http://localhost:8085',// `http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
//target:`http://zhxg.gxsdxy.cn`,
changeOrigin: true,
pathRewrite: {