|
@@ -75,7 +75,6 @@
|
|
|
</div>
|
|
|
<div class="traitfrom">
|
|
|
<el-table :data="optionData" style="width: 100%" :highlight-current-row="true" height="74vh" v-loading="loading" :empty-text="$t(`commonMsg.nodataTable`)" element-loading-text="数据加载中...">
|
|
|
- <!-- <el-table-column prop="index" :label="$t(`areaManages.areaTable.serialnum`)" type="index" sortable align="center" /> -->
|
|
|
<el-table-column prop="name" :label="$t(`areaManages.areaTable.name`)" align="center" />
|
|
|
<el-table-column prop="id" label="学区ID" align="center">
|
|
|
<template #default="scope">
|
|
@@ -89,21 +88,34 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="code" label="学区简码" align="center">
|
|
|
+ <el-table-column prop="code" label="频道简码" align="center">
|
|
|
<template #default="scope">
|
|
|
- <div class="code-idboxs">
|
|
|
- <div>XXXX</div>
|
|
|
+ <!-- <div class="code-idboxs">
|
|
|
+ <div>暂无简码</div>
|
|
|
<div class="code-copyicon" title="复制学区简码">
|
|
|
<el-icon @click="copyAreaID(scope.row)">
|
|
|
<CopyDocument />
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
+ </div> -->
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <p v-show="scope.$index !==curTarget.index ">
|
|
|
+ 暂无简码
|
|
|
+ <el-icon class="el-icon-edit-outline" @click="curTarget.index=scope.$index"><Edit /></el-icon>
|
|
|
+ </p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{minRows:2,maxRows:4}"
|
|
|
+ v-show="scope.$index ===curTarget.index "
|
|
|
+ v-model="scope.row.id"
|
|
|
+ @blur="curTarget.index=-1"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="schoolCount" label="区内学校数量" align="center" sortable :sort-method="areaSort" />
|
|
|
<el-table-column prop="location" label="位置" align="center" />
|
|
|
- <!-- <el-table-column prop="cityName" :label="$t(`areaManages.areaTable.city`)" align="center" /> -->
|
|
|
<el-table-column prop="institution" :label="$t(`areaManages.areaTable.affiliation`)" align="center" />
|
|
|
<el-table-column prop="standardName" :label="$t(`areaManages.areaTable.project`)" align="center" />
|
|
|
<el-table-column :label="$t(`areaManages.areaTable.operate`)" align="center" v-if="PowerShow">
|
|
@@ -118,6 +130,41 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
+ <!--可编辑table-->
|
|
|
+ <!-- <el-table
|
|
|
+ :data="testDatas"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ v-loading="loading" :empty-text="$t(`commonMsg.nodataTable`)" element-loading-text="数据加载中..."
|
|
|
+ >
|
|
|
+ <el-table-column v-for="(col, idx) in columnList" :key="col.prop" :index="idx">
|
|
|
+ <template #header>
|
|
|
+ <p v-show="col.show" class="customtable-header">
|
|
|
+ {{col.label}}
|
|
|
+
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ <template #default="{ row }">
|
|
|
+ <div v-if="col.prop !=='operate'">
|
|
|
+ <p v-show="row[col.prop].show" >
|
|
|
+ {{row[col.prop].content}}
|
|
|
+ <el-icon v-show="col.prop ==='code' " class="el-icon-edit-outline" @click="$event => handleEdit(row[col.prop], $event.target)"><Edit /></el-icon>
|
|
|
+ </p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{minRows:2,maxRows:4}"
|
|
|
+ v-show="!row[col.prop].show"
|
|
|
+ v-model="row[col.prop].content"
|
|
|
+ @blur="row[col.prop].show=true"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else class="customtable-header">
|
|
|
+ <el-button size="mini" @click="operation(scope.$index, scope.row, true)" type="primary">查看</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-button size="mini" type="primary">查看</el-button>
|
|
|
+ </el-table> -->
|
|
|
+ <!--可编辑table end-->
|
|
|
</div>
|
|
|
<div class="adjustmentDialog">
|
|
|
<el-dialog v-model="adjustmentbox" title="" width="80%" @close="closeInfo" center class="interfacebbox">
|
|
@@ -646,7 +693,7 @@ import { useRouter } from 'vue-router'
|
|
|
import Ability from '@/components/Ability.vue'
|
|
|
import option from '@/static/region.json'
|
|
|
import loadingsz from '@/components/loading/partial.vue'
|
|
|
-import { CopyDocument, ArrowRight, ArrowLeft, Search, Back, ArrowDown } from '@element-plus/icons-vue'
|
|
|
+import { CopyDocument, ArrowRight, ArrowLeft, Search, Back, ArrowDown,Edit } from '@element-plus/icons-vue'
|
|
|
import useClipboard from 'vue-clipboard3'
|
|
|
import jwt_decode from 'jwt-decode'
|
|
|
const optionsData = option
|
|
@@ -659,9 +706,40 @@ export default {
|
|
|
ArrowLeft,
|
|
|
Search,
|
|
|
Back,
|
|
|
- ArrowDown
|
|
|
+ ArrowDown,
|
|
|
+ Edit
|
|
|
},
|
|
|
setup () {
|
|
|
+ let columnList=ref( [
|
|
|
+ { prop: "name", label: '名称', show: true },
|
|
|
+ { prop: "id", label: '学区ID', show: true },
|
|
|
+ { prop: "code", label: '频道简码', show: true },
|
|
|
+ { prop: "schoolCount", label: '区内学校数量', show: true },
|
|
|
+ { prop: "location", label: '位置', show: true },
|
|
|
+ { prop: "institution", label: '所属机构', show: true },
|
|
|
+ { prop: "standardName", label: '微能力点方案', show: true },
|
|
|
+ { prop: "operate", label: '操作', show: true },
|
|
|
+ ])
|
|
|
+ let testDatas=ref([
|
|
|
+ // {
|
|
|
+ // name: { content: '张三', show: true},
|
|
|
+ // age: { content: 24, show: true },
|
|
|
+ // city: { content: '广州', show: true },
|
|
|
+ // tel: { content: '13312345678', show: true },
|
|
|
+ // operate:{content:'',state:true}
|
|
|
+ // },{
|
|
|
+ // name: { content: '李四', show: true },
|
|
|
+ // age: { content: 25, show: true },
|
|
|
+ // city: { content: '九江', show: true },
|
|
|
+ // tel: { content: '18899998888', show: true },
|
|
|
+ // operate:{content:'',state:true}
|
|
|
+ // }
|
|
|
+ ])
|
|
|
+ let count_col=ref(0)
|
|
|
+ let showMenu=ref(false)
|
|
|
+ let curTarget=ref({
|
|
|
+ index:-1,
|
|
|
+ })
|
|
|
let { proxy } = getCurrentInstance()
|
|
|
let PowerShow = proxy.$access.identifyPosition(JSON.parse(localStorage.getItem('id_token')))
|
|
|
const { toClipboard } = useClipboard()
|
|
@@ -779,16 +857,35 @@ export default {
|
|
|
res.areas[i].location = res.areas[i].provName + res.areas[i].cityName
|
|
|
}
|
|
|
optionData.value.push(...res.areas)
|
|
|
- loading.value = false
|
|
|
store.commit('getPoint', res.areas)
|
|
|
originalDatas.value.push(...res.areas)
|
|
|
optionData.value.forEach((item, index) => { item.name.includes('完整') ? optionData.value.splice(index, 1) : '' })
|
|
|
+ disposeTabledata(optionData.value)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //处理API返回的学区json 符合table的呈现
|
|
|
+ function disposeTabledata(data){
|
|
|
+ let initData=data
|
|
|
+ initData.forEach((item)=>{
|
|
|
+ let pushData={
|
|
|
+ name:{content:item.name,show:true},
|
|
|
+ id:{content:item.id,show:true},
|
|
|
+ code:{content:'暂无简码',show:true},
|
|
|
+ schoolCount:{content:item.schoolCount,show:true},
|
|
|
+ location:{content:item.provName+item.cityName,show:true},
|
|
|
+ institution:{content:item.institution,show:true},
|
|
|
+ standardName:{content:item.standardName,show:true},
|
|
|
+ standardName:{content:item.standardName,show:true},
|
|
|
+ operate:{content:'',state:true}
|
|
|
+ }
|
|
|
+ testDatas.value.push(pushData)
|
|
|
})
|
|
|
+ loading.value = false
|
|
|
}
|
|
|
//table按钮
|
|
|
async function operation (index, row, state) {
|
|
|
tableData.value = []
|
|
|
- console.log(row)
|
|
|
+ console.log(index,row,state,'打开学区传输内容')
|
|
|
loadingSchoolList.value = true
|
|
|
currentlySelect.value = row
|
|
|
let dialogData = JSON.parse(JSON.stringify(originalDatas.value))
|
|
@@ -1259,6 +1356,7 @@ export default {
|
|
|
return item.name.includes(areaValues.value)
|
|
|
})
|
|
|
optionData.value = newArr
|
|
|
+ disposeTabledata(optionData.value)
|
|
|
loading.value = false
|
|
|
}
|
|
|
function addSelectSchool (value) {
|
|
@@ -1364,6 +1462,16 @@ export default {
|
|
|
})
|
|
|
position.value = ''
|
|
|
}
|
|
|
+ //编辑table
|
|
|
+ function handleEdit(cell,pEl){
|
|
|
+ console.log(pEl.nextSibling,'编辑按钮btn')
|
|
|
+ // const editIputEl = Array.from(pEl.nextSibling.childNodes).find(n => ['INPUT','TEXTAREA'].includes(n.tagName))
|
|
|
+ //console.log(editIputEl,'结果')
|
|
|
+ cell.show = false
|
|
|
+ // editIputEl && this.$nextTick(() => {
|
|
|
+ // editIputEl.focus()
|
|
|
+ // })
|
|
|
+ }
|
|
|
watch(abilityModel, (newdata) => {
|
|
|
console.log(newdata)
|
|
|
newdata
|
|
@@ -1493,7 +1601,14 @@ export default {
|
|
|
dropdownValue,
|
|
|
multiplecheck,
|
|
|
multipleChange,
|
|
|
- multipleAdd
|
|
|
+ multipleAdd,
|
|
|
+ columnList,
|
|
|
+ testDatas,
|
|
|
+ handleEdit,
|
|
|
+ count_col,
|
|
|
+ showMenu,
|
|
|
+ curTarget,
|
|
|
+ disposeTabledata
|
|
|
}
|
|
|
},
|
|
|
}
|
|
@@ -2378,6 +2493,10 @@ export default {
|
|
|
color: #636e72;
|
|
|
font-weight: none;
|
|
|
}
|
|
|
+.customtable-header{
|
|
|
+ margin-bottom: 5px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
</style>
|
|
|
<style>
|
|
|
.stagebox-table-not .el-image {
|
|
@@ -2395,6 +2514,9 @@ export default {
|
|
|
width: 98%;
|
|
|
margin: 0 auto;
|
|
|
/* padding: 1%; */
|
|
|
+ overflow: hidden;
|
|
|
+ height:80vh;
|
|
|
+ overflow-y: auto;
|
|
|
}
|
|
|
|
|
|
.traitfrom .el-form-item {
|
|
@@ -2579,6 +2701,16 @@ export default {
|
|
|
.select-school .el-input{
|
|
|
width:100% !important;
|
|
|
}
|
|
|
+.traitfrom .el-scrollbar{
|
|
|
+ line-height: 80px;
|
|
|
+}
|
|
|
+.traitfrom .el-table .el-table__cell{
|
|
|
+ padding: 15px 0px;
|
|
|
+}
|
|
|
+.traitfrom .el-scrollbar .cell p{
|
|
|
+ margin-bottom: 0px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
@media screen and (max-width: 2600px) {
|
|
|
.select-box-items {
|
|
|
width: 25%;
|