Merge branch 'build' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into build
This commit is contained in:
		| @@ -11,7 +11,7 @@ | ||||
|   import activitiesAdd from './components/activitiesAdd' | ||||
|  | ||||
|   export default { | ||||
|     name: 'AppHomeReport', | ||||
|     name: 'AppActivitiesManagement', | ||||
|     label: '活动管理', | ||||
|  | ||||
|     props: { | ||||
|   | ||||
| @@ -54,45 +54,45 @@ | ||||
|               <el-form ref="form" :model="form" :rules="formRules" size="small"  label-width="150px"> | ||||
|  | ||||
|                 <el-form-item label="活动名称" prop="title"> | ||||
|                   <el-input v-model="form.title" placeholder="请输入" show-word-limit maxlength="100"></el-input> | ||||
|                   <el-input v-model="form.title" placeholder="请输入" show-word-limit maxlength="64"></el-input> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="活动说明"> | ||||
|                   <el-input type="textarea" :rows="5" v-model="form.votingInstructions" placeholder="请输入" show-word-limit maxlength="500"></el-input> | ||||
|                   <el-input type="textarea" :rows="5" v-model="form.detail" placeholder="请输入" show-word-limit maxlength="500"></el-input> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="行政地区" prop="title"> | ||||
|                 <!-- <el-form-item label="行政地区" prop="title"> | ||||
|                   <ai-area-get v-model="form.areaId" :root="areaRootId" :instance="instance" @select="handleAreaSelect"/> | ||||
|                 </el-form-item> | ||||
|                 </el-form-item> --> | ||||
|  | ||||
|                 <el-form-item label="地图位置" prop="title"> | ||||
|                 <el-form-item style="width: 100%" label="地理位置" prop="location"> | ||||
|                   <el-button @click="showMap = true">地图标绘</el-button> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="打卡范围" prop="title"> | ||||
|                   <el-input v-model="form.title" placeholder="请输入" > | ||||
|                 <el-form-item label="打卡范围" prop="clockRange"> | ||||
|                   <el-input v-model="form.clockRange" placeholder="请输入" > | ||||
|                     <template slot="append">米</template> | ||||
|                   </el-input> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="进场打卡时间" prop="title"> | ||||
|                   <el-date-picker v-model="form.value1" type="datetimerange" start-placeholder="开始日期"  | ||||
|                 <el-form-item label="进场打卡时间" prop="intoTime"> | ||||
|                   <el-date-picker v-model="form.intoTime" type="datetimerange" start-placeholder="开始日期"  | ||||
|                   end-placeholder="结束日期" :default-time="['00:00:00']"></el-date-picker> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="进场得积分" prop="title"> | ||||
|                   <el-input v-model="form.title" type="number" placeholder="请输入" > | ||||
|                 <el-form-item label="进场得积分" prop="intoIntegral"> | ||||
|                   <el-input v-model="form.intoIntegral" type="number" placeholder="请输入" > | ||||
|                     <template slot="append">积分</template> | ||||
|                   </el-input> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="离场打卡时间" prop="title"> | ||||
|                   <el-date-picker v-model="form.value1" type="datetimerange" start-placeholder="开始日期"  | ||||
|                 <el-form-item label="离场打卡时间" prop="exitTime"> | ||||
|                   <el-date-picker v-model="form.exitTime" type="datetimerange" start-placeholder="开始日期"  | ||||
|                   end-placeholder="结束日期" :default-time="['00:00:00']"></el-date-picker> | ||||
|                 </el-form-item> | ||||
|  | ||||
|                 <el-form-item label="离场得积分" prop="title"> | ||||
|                   <el-input v-model="form.title" type="number" placeholder="请输入" > | ||||
|                 <el-form-item label="离场得积分" prop="exitIntegral"> | ||||
|                   <el-input v-model="form.exitIntegral" type="number" placeholder="请输入" > | ||||
|                     <template slot="append">积分</template> | ||||
|                   </el-input> | ||||
|                 </el-form-item> | ||||
| @@ -107,7 +107,7 @@ | ||||
|         <el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|     <ai-dialog title="地图" :visible.sync="showMap" @opened="getCorpLocation" width="800px" class="mapDialog" @onConfirm="selectMap"> | ||||
|     <ai-dialog title="地图" :visible.sync="showMap" @opened="initMap" width="800px" class="mapDialog" @onConfirm="selectMap"> | ||||
|       <div id="map"></div> | ||||
|       <el-form label-width="80px" style="padding: 10px 20px 0 20px;"> | ||||
|         <el-row type="flex" justify="space-between"> | ||||
| @@ -128,6 +128,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import AMapLoader from '@amap/amap-jsapi-loader' | ||||
| import { mapState } from "vuex"; | ||||
| export default { | ||||
|   name: "activitiesAdd", | ||||
| @@ -138,32 +139,20 @@ export default { | ||||
|   }, | ||||
|  | ||||
|   data() { | ||||
|     let validCandidate = (rule, value, callback) => { | ||||
|       if (!value.length) { | ||||
|         return callback(new Error('请选择候选人')); | ||||
|     var validLocation =  (rule, value, callback) => { | ||||
|       if(!this.form.lat || !this.form.lng) { | ||||
|         return callback(new Error('请标绘地理位置')) | ||||
|       } else { | ||||
|         callback(); | ||||
|         callback() | ||||
|       } | ||||
|     }; | ||||
|     let validVote = (rule, value, callback) => { | ||||
|       if (!value.length) { | ||||
|         return callback(new Error('请选择投票人')); | ||||
|       } else { | ||||
|         callback(); | ||||
|       } | ||||
|     }; | ||||
|     } | ||||
|     return { | ||||
|       form: { | ||||
|         title: '', | ||||
|         votingInstructions: '', | ||||
|         organizationName: '', | ||||
|         electionMethod: '', | ||||
|         chooseNumber: '', | ||||
|         votingDate: '', | ||||
|         candidateUsers: [], | ||||
|         voteUsers: [], | ||||
|         partyOrganizations: [], | ||||
|         partyOrgId: '' | ||||
|         detail: '', | ||||
|         lng: '', | ||||
|         lat: '', | ||||
|         clockRange: '', | ||||
|       }, | ||||
|       formRules: { | ||||
|         title: [{required: true, message: "请输入标题", trigger: "blur"}], | ||||
| @@ -171,8 +160,8 @@ export default { | ||||
|         electionMethod: [{required: true, message: "请选择选举方式", trigger: "blur"}], | ||||
|         chooseNumber: [{required: true, message: "请输入应选人数", trigger: "blur"}], | ||||
|         votingDate: [{required: true, message: "请选择投票日期", trigger: "blur"}], | ||||
|         candidateUsers: [{required: true,validator: validCandidate, trigger: "blur"}], | ||||
|         voteUsers: [{required: true,validator: validVote, trigger: "blur"}], | ||||
|         candidateUsers: [{required: true,validator: validLocation, trigger: "blur"}], | ||||
|         voteUsers: [{required: true,validator: validLocation, trigger: "blur"}], | ||||
|       }, | ||||
|       id: '', | ||||
|       isEdit: false, | ||||
| @@ -183,6 +172,7 @@ export default { | ||||
|       chooseVoteList: [], | ||||
|       areaRootId: '', | ||||
|       map: null, | ||||
|       placeSearch: null, | ||||
|       placeDetail: { | ||||
|         lng: '', | ||||
|         lat: '', | ||||
| @@ -197,14 +187,15 @@ export default { | ||||
|       this.getDetail() | ||||
|     } | ||||
|     this.areaRootId = [this.user.info.areaId.substr(0, 6), '000000'].join("") | ||||
|     // this.initMap() | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']) | ||||
|   }, | ||||
|   methods: { | ||||
|     selectMap() { | ||||
|       this.formData.lng = this.placeDetail.lng | ||||
|       this.formData.lat = this.placeDetail.lat | ||||
|       this.form.lng = this.placeDetail.lng | ||||
|       this.form.lat = this.placeDetail.lat | ||||
|       this.showMap = false | ||||
|     }, | ||||
|     getCorpLocation() { | ||||
| @@ -215,18 +206,16 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     initMap({ lng, lat }) { | ||||
|     initMap() { | ||||
|       AMapLoader.load({ | ||||
|         key: 'b553334ba34f7ac3cd09df9bc8b539dc', | ||||
|         key: '54a02a43d9828a8f9cd4f26fe281e74e', | ||||
|         version: '2.0', | ||||
|         plugins: ['AMap.PlaceSearch', 'AMap.AutoComplete', 'AMap.Geocoder'], | ||||
|       }).then((AMap) => { | ||||
|         this.placeDetail.lng = this.formData.lng | ||||
|         this.placeDetail.lat = this.formData.lat | ||||
|         this.map = new AMap.Map('map', { | ||||
|           resizeEnable: true, | ||||
|           zooms: [6, 20], | ||||
|           center: [lng, lat], | ||||
|           // center: [lng, lat], | ||||
|           zoom: 11, | ||||
|         }) | ||||
|         this.placeSearch = new AMap.PlaceSearch({ map: this.map }) | ||||
| @@ -254,6 +243,7 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|  | ||||
|     movePosition(center) { | ||||
|       if (this.map) { | ||||
|         this.map.clearMap() | ||||
| @@ -281,7 +271,7 @@ export default { | ||||
|     }, | ||||
|  | ||||
|     getDetail() { | ||||
|       this.instance.post(`/app/appgeneralelectioninfo/queryDetailById`,null, { | ||||
|       this.instance.post(`/appactivityinfo/queryDetailById`,null, { | ||||
|         params: {id:this.id} | ||||
|       }).then((res) => { | ||||
|         if(res?.data) { | ||||
| @@ -318,7 +308,7 @@ export default { | ||||
|                 return this.$message.error('候选人数应多于应选人数') | ||||
|               } | ||||
|             } | ||||
|             this.instance.post(`/app/appgeneralelectioninfo/addOrUpdate`,{ | ||||
|             this.instance.post(`/appactivityinfo/addOrUpdate`,{ | ||||
|               ...this.form | ||||
|             }).then(res => { | ||||
|               if(res.code == 0) { | ||||
| @@ -339,6 +329,13 @@ export default { | ||||
| .activitiesAdd { | ||||
|   height: 100%; | ||||
|  | ||||
|   ::v-deep .amap-logo { | ||||
|     display: none!important; | ||||
|   } | ||||
|   ::v-deep .amap-copyright { | ||||
|     display: none!important; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .el-date-editor .el-input { | ||||
|     width: 100%; | ||||
|   } | ||||
|   | ||||
| @@ -6,20 +6,14 @@ | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >创建活动</el-button> | ||||
|             <!-- <ai-select v-model="search.status" @change=";(page.current = 1), getList()" placeholder="请选择状态" :selectList="dict.getDict('electionStatus')"></ai-select> --> | ||||
|           </template> | ||||
|           <!-- <template #right> | ||||
|             <el-input v-model="search.title" class="search-input" size="small" v-throttle="() => {(page.current = 1), getList()} " placeholder="标题" clearable @change="getList" @clear="page.current = 1, (search.title = ''), getList()" suffix-icon="iconfont iconSearch"> | ||||
|             </el-input> | ||||
|           </template> --> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" @getList="getList" :col-configs="colConfigs" :dict="dict"> | ||||
|           <el-table-column slot="options" label="操作" fixed="right" align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click.native="toAdd(row.id)">详情</el-button> | ||||
|               <el-button type="text" v-show="row.status!=2" :disabled="row.status==2" @click.native="startEnd(row.id, row.status)">{{row.status == 0? '开启':'结束'}}</el-button> | ||||
|               <!-- <el-button type="text" v-show="row.status != 0" @click.native="toStatistics(row.id)">统计</el-button> --> | ||||
|               <!-- <el-button type="text" @click.native="handleDelete(row.id)">删除</el-button> --> | ||||
|               <el-button type="text" @click.native="handleDelete(row.id)">删除</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
| @@ -37,10 +31,6 @@ export default { | ||||
|   }, | ||||
|   data () { | ||||
|     return { | ||||
|       search: { | ||||
|         status: '',  // 0、未开始;1、进行中;2、已结束 | ||||
|         title: '', | ||||
|       }, | ||||
|       page: { | ||||
|         current: 1, | ||||
|         size: 10, | ||||
| @@ -57,20 +47,20 @@ export default { | ||||
|   computed: { | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         {prop: "", label: "活动名称", align: "left", showOverflowTooltip: true}, | ||||
|         {prop: "", label: "创建人", align: "center"}, | ||||
|         {prop: "", label: "开始结束时间", align: "center",dict:"electionMethod"}, | ||||
|         {prop: "", label: "活动状态", align: "center"}, | ||||
|         {prop: "title", label: "活动名称", align: "left", showOverflowTooltip: true}, | ||||
|         {prop: "createUserName", label: "创建人", align: "center"}, | ||||
|         {prop: "intoBegintime", label: "开始结束时间", align: "center", render: (h, {row}) => h('p',{textAlign:'center'}, | ||||
|          `${row.intoBegintime}至${row.exitEndtime}`)}, | ||||
|         {prop: "status", label: "活动状态", align: "center",dict:"electionMethod"}, | ||||
|         { slot: "options", }, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getList() { | ||||
|       this.instance.post(`/app/appgeneralelectioninfo/list`,null,{ | ||||
|       this.instance.post(`/appactivityinfo/list`,null, { | ||||
|         params: { | ||||
|           ...this.page, | ||||
|           ...this.search, | ||||
|         } | ||||
|       }).then(res=> { | ||||
|         if(res?.data) { | ||||
| @@ -89,7 +79,7 @@ export default { | ||||
|     }, | ||||
|     handleDelete(id) { | ||||
|       this.$confirm('确定删除该数据?').then(() => { | ||||
|         this.instance.post(`/app/appgeneralelectioninfo/delete?ids=${id}`).then(res=>{ | ||||
|         this.instance.post(`/appactivityinfo/delete?ids=${id}`).then(res=>{ | ||||
|           if(res.code == 0) { | ||||
|             this.$message.success('删除成功!') | ||||
|             this.getList() | ||||
| @@ -97,13 +87,6 @@ export default { | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|     reset() { | ||||
|       this.search = { | ||||
|         status: '', | ||||
|         title: '', | ||||
|       } | ||||
|       this.getList() | ||||
|     }, | ||||
|     // 开启、结束 | ||||
|     startEnd(id, status) { | ||||
|       let title = '' | ||||
| @@ -127,15 +110,6 @@ export default { | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|     // 统计 | ||||
|     toStatistics(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'Statistics', | ||||
|         params: { | ||||
|           id: id || '', | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user