167 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <section class="moment">
 | |
|     <template v-if="detail.id">
 | |
|       <ai-title title="总体概况" class="mar-b8">
 | |
|         <template slot="rightBtn">
 | |
|           <el-button size="small" type="text" icon="iconfont iconEdit" @click="toEdit(oid)">修改</el-button>
 | |
|         </template>
 | |
|       </ai-title>
 | |
|       <ai-wrapper>
 | |
|         <ai-info-item label="本届换届时间" :value="detail.changeTime"/>
 | |
|         <ai-info-item label="换届类型" :value="dict.getLabel('organizationChangeType',detail.type)"/>
 | |
|         <ai-info-item label="下届换届时间" :value="detail.nextChangeTime"/>
 | |
|         <ai-info-item label="当前届次" :value="detail.sessionTime"/>
 | |
|       </ai-wrapper>
 | |
|       <ai-title title="本届任职" class="mar-b8">
 | |
|         <template slot="rightBtn">
 | |
|           <el-button size="small" type="text" icon="iconfont iconAdd" @click="dialogJob=true">添加任职人员</el-button>
 | |
|         </template>
 | |
|       </ai-title>
 | |
|       <ai-table
 | |
|           class="detail-table__table"
 | |
|           :tableData="tableData"
 | |
|           :col-configs="colConfigs"
 | |
|           :total="totalJob"
 | |
|           :current.sync="current"
 | |
|           :size.sync="size"
 | |
|           @getList="getJobList">
 | |
|         <el-table-column slot="options" label="操作" align="center">
 | |
|           <template slot-scope="{ row }">
 | |
|             <el-button type="text" @click="jobEdit(row.id)">编辑</el-button>
 | |
|             <el-button type="text" @click="jobDelete(row.id)">删除</el-button>
 | |
|           </template>
 | |
|         </el-table-column>
 | |
|       </ai-table>
 | |
|       <ai-title title="本届候选人" class="mar-b8">
 | |
|         <template slot="rightBtn">
 | |
|           <el-button size="small" type="text" icon="iconfont iconAdd" @click="dialogCandidate = true">添加候选人</el-button>
 | |
|         </template>
 | |
|       </ai-title>
 | |
|       <ai-table
 | |
|           class="detail-table__table"
 | |
|           :tableData="tableData"
 | |
|           :col-configs="colConfigs"
 | |
|           :total="totalJob"
 | |
|           :current.sync="current"
 | |
|           :size.sync="size"
 | |
|           @getList="getJobList">
 | |
|         <el-table-column slot="options" label="操作" align="center">
 | |
|           <template slot-scope="{ row }">
 | |
|             <el-button type="text" @click="jobEdit(row.id)">编辑</el-button>
 | |
|             <el-button type="text" @click="jobDelete(row.id)">删除</el-button>
 | |
|           </template>
 | |
|         </el-table-column>
 | |
|       </ai-table>
 | |
|     </template>
 | |
|     <ai-empty>
 | |
|       <div>暂无换届信息</div>
 | |
|       <el-row type="flex" justify="center" class="mar-t8">
 | |
|         <ai-highlight content="请点击【@v】完善基础内容后,再进行后续操作" value="换届设置"/>
 | |
|       </el-row>
 | |
|     </ai-empty>
 | |
|     <ai-dialog :visible.sync="dialogJob" title="添加本届任职人" width="720px" @closed="jobForm={}" @onConfirm="handleJobForm">
 | |
|       <el-form ref="jobForm" size="small" :model="jobForm" :rules="jobRules" label-width="80px">
 | |
|         <el-form-item label="职位" prop="job">
 | |
|           <el-input v-model="jobForm.job" clearable placeholder="请输入"/>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="姓名" prop="name">
 | |
|           <el-input v-model="jobForm.name" clearable placeholder="请输入"/>
 | |
|         </el-form-item>
 | |
|       </el-form>
 | |
|     </ai-dialog>
 | |
|     <ai-dialog :visible.sync="dialogCandidate" title="添加本届候选人" width="720px" @closed="CandFrom={}" @onConfirm="handleCandForm">
 | |
|       <el-form ref="CandFrom" size="small" :model="CandFrom" :rules="candRules" label-width="80px">
 | |
|         <el-form-item label="职位" prop="job">
 | |
|           <el-input v-model="CandFrom.job" clearable placeholder="请输入"/>
 | |
|         </el-form-item>
 | |
|         <el-form-item label="候选人" prop="name">
 | |
|           <el-input type="textarea" rows="5" v-model="CandFrom.name" placeholder="请输入候选人姓名,用逗号隔开"/>
 | |
|         </el-form-item>
 | |
|       </el-form>
 | |
|     </ai-dialog>
 | |
|   </section>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| export default {
 | |
|   name: "moment",
 | |
|   inject: ['permissions', 'instance', 'dict'],
 | |
|   data() {
 | |
|     return {
 | |
|       detail: {},
 | |
|       tableData: [],
 | |
|       totalJob: 0,
 | |
|       current: 1,
 | |
|       size: 10,
 | |
|       dialogJob: false,
 | |
|       dialogCandidate: false,
 | |
|       jobForm: {
 | |
|         job: '',
 | |
|         name: '',
 | |
|       },
 | |
|       CandFrom: {
 | |
|         job: '',
 | |
|         name: '',
 | |
|       },
 | |
|     }
 | |
|   },
 | |
|   computed: {
 | |
|     colConfigs() {
 | |
|       return [
 | |
|         {prop: 'content', label: '职位'},
 | |
|         {prop: 'content', label: '姓名'},
 | |
|         {slot: 'options'},
 | |
|       ]
 | |
|     },
 | |
|     jobRules() {
 | |
|       return {
 | |
|         job: [{required: true, message: "请输入职位"}],
 | |
|         name: [{required: true, message: "请输入姓名"}],
 | |
|       }
 | |
|     },
 | |
|     candRules() {
 | |
|       return {
 | |
|         job: [{required: true, message: "请输入职位"}],
 | |
|         name: [{required: true, message: "请输入姓名"}],
 | |
|       }
 | |
|     },
 | |
|     oid: v => v.$attrs.selected.id
 | |
|   },
 | |
|   created() {
 | |
|     this.getList()
 | |
|   },
 | |
|   methods: {
 | |
|     jobEdit() {
 | |
|     },
 | |
|     jobDelete() {
 | |
|     },
 | |
|     getJobList() {
 | |
|     },
 | |
|     toEdit(id) {
 | |
|       this.$router.push({hash: "#add", query: {id}})
 | |
|     },
 | |
|     getList() {
 | |
|       const {oid: organizationId} = this
 | |
|       organizationId && this.instance.post(`/app/apporganizationgeneralelection/queryDetailByOrganizationId`, null, {
 | |
|         params: {organizationId}
 | |
|       }).then(res => {
 | |
|         if (res?.data) {
 | |
|           this.detail = res.data
 | |
|         }
 | |
|       })
 | |
|     },
 | |
|     handleJobForm() {
 | |
|     },
 | |
|     handleCandForm() {
 | |
|     },
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" scope>
 | |
| .moment {
 | |
|   padding-top: 0 !important;
 | |
|   background-color: #FFF !important;
 | |
| }
 | |
| </style>
 |