editionList.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>版本控制
  5. </h2>
  6. <div class="m-core">
  7. <!-- -->
  8. <div class="newBand" @click="createEdi" v-permission="'appVersionInfo/add'">新建</div>
  9. <el-form :inline="true" :model="searchForm">
  10. <el-form-item label="客户端">
  11. <el-select clearable v-model="searchForm.search">
  12. <el-option v-for="(item,index) in sectionList" :key='index' :value="item.value" :label="item.label"></el-option>
  13. </el-select>
  14. </el-form-item>
  15. <el-form-item >
  16. <el-button type="danger" @click="search">搜索</el-button>
  17. </el-form-item>
  18. </el-form>
  19. <div class="tableWrap">
  20. <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  21. <el-table-column align="center" prop="id" label="编号"></el-table-column>
  22. <el-table-column align="center" prop="platform" label="客户端">
  23. <template slot-scope="scope">
  24. <div>{{ scope.row.platform|editionFilter }}</div>
  25. </template>
  26. </el-table-column>
  27. <el-table-column align="center" prop="version" label="版本号"></el-table-column>
  28. <el-table-column align="center" prop="isForceUpdate" label="强制更新">
  29. <template slot-scope="scope">
  30. <div>{{ scope.row.isForceUpdate?'是':'否'}}</div>
  31. </template>
  32. </el-table-column>
  33. <el-table-column align="center" prop="status" label="状态">
  34. <template slot-scope="scope">
  35. <div>{{scope.row.status | statusFilter}}</div>
  36. </template>
  37. </el-table-column>
  38. <el-table-column align="center" prop="description" label="描述"></el-table-column>
  39. <el-table-column align="center" prop="downloadUrl" label="下载链接"></el-table-column>
  40. <el-table-column align="center" label="操作">
  41. <template slot-scope="scope">
  42. <div>
  43. <el-button v-permission="'appVersionInfo/update'" type="text" @click="resetEdit(scope.row)">修改</el-button>
  44. </div>
  45. </template>
  46. </el-table-column>
  47. </el-table>
  48. <pagination
  49. :total="rules.total"
  50. :page.sync="rules.page"
  51. :limit.sync="rules.limit"
  52. :page-sizes="rules.page_size"
  53. @pagination="getList"
  54. />
  55. </div>
  56. </div>
  57. <!-- v-if="sectionVisible" -->
  58. <el-dialog title="版本修改" width="400px" :visible.sync="sectionVisible" :before-close="resetForm" >
  59. <el-form
  60. :model="sectionForm"
  61. ref="sectionForm"
  62. :rules="sectionRules"
  63. label-position="right"
  64. label-width="80px"
  65. :inline="true"
  66. v-if="sectionVisible"
  67. >
  68. <el-form-item label="客户端" prop="platform" v-if="isNew">
  69. <el-select v-model="sectionForm.platform" clearable>
  70. <el-option v-for="(item,index) in sectionList" :key="index" :label="item.label" :value="item.value"></el-option>
  71. </el-select>
  72. </el-form-item>
  73. <el-form-item label="版本号" prop="version" v-if="isNew">
  74. <el-input v-model.trim="sectionForm.version" @mousewheel.native.prevent></el-input>
  75. </el-form-item>
  76. <el-form-item label="强制更新" prop="isForceUpdate">
  77. <el-select clearable v-model="sectionForm.isForceUpdate">
  78. <el-option label="是" :value="true"></el-option>
  79. <el-option label="否" :value="false"></el-option>
  80. </el-select>
  81. </el-form-item>
  82. <el-form-item label="状态" prop="status">
  83. <el-select clearable v-model="sectionForm.status">
  84. <el-option label="最新" value="newest"></el-option>
  85. <el-option label="历史" value="history"></el-option>
  86. </el-select>
  87. </el-form-item>
  88. <el-form-item label="下载链接" prop="downloadUrl">
  89. <el-input v-model.trim="sectionForm.downloadUrl" type="textarea"></el-input>
  90. </el-form-item>
  91. <el-form-item label="描述" prop="description">
  92. <el-input type="textarea" v-model="sectionForm.description"></el-input>
  93. </el-form-item>
  94. </el-form>
  95. <div slot="footer" class="dialog-footer">
  96. <el-button @click="sectionVisible = false">取 消</el-button>
  97. <el-button v-if="isNew" type="primary" @click="createEdition">确 定</el-button>
  98. <el-button v-if="!isNew" type="primary" @click="resetEdition">确 定</el-button>
  99. </div>
  100. </el-dialog>
  101. </div>
  102. </template>
  103. <script>
  104. import { appVersionInfo,addAppVersionInfo,resetAppVersionInfo } from "@/api/systemManage";
  105. import pagination from "@/components/Pagination/index";
  106. export default {
  107. components: {
  108. pagination
  109. },
  110. data() {
  111. return {
  112. sectionVisible: false,
  113. tableList: [],
  114. rules: {
  115. // 分页规则
  116. limit: 10, // 限制显示条数
  117. page: 1, // 当前页
  118. total: 0, // 总条数
  119. page_size: [10, 20, 40, 50] // 选择限制显示条数
  120. },
  121. searchForm:{
  122. search:null
  123. },
  124. sectionList: [{value:'ios-teacher',label:'苹果-老师端'},
  125. {value:'ios-student',label:'苹果-学生端'},{value:'ios-education',label:'苹果-教务端'},{value:'android-teacher',label:'安卓-老师端'},
  126. {value:'android-student',label:'安卓-学生端'},{value:'android-education',label:'安卓-教务端'}],
  127. sectionForm: {
  128. platform:'',
  129. version:'',
  130. isForceUpdate:'',
  131. downloadUrl:'',
  132. status:'',
  133. id:''
  134. },
  135. sectionRules: {
  136. platform: [
  137. { required: true, message: "请选择客户端", trigger: "blur" }
  138. ],
  139. version: [
  140. { required: true, message: "请输入版本号", trigger: "blur" }
  141. ],
  142. isForceUpdate: [
  143. { required: true, message: "请选择是否强更", trigger: "blur" }
  144. ],
  145. status: [
  146. { required: true, message: "请选择版本状态", trigger: "blur" }
  147. ],
  148. },
  149. isNew:false
  150. };
  151. },
  152. activated() {
  153. this.init();
  154. },
  155. created() {
  156. this.init();
  157. },
  158. methods: {
  159. search(){
  160. this.rules.page = 1;
  161. this.getList()
  162. },
  163. init() {
  164. this.getList();
  165. },
  166. getList() {
  167. this.searchForm.search?this.searchForm.search:this.searchForm.search = null;
  168. appVersionInfo({search:this.searchForm.search}).then(res => {
  169. if (res.code == 200) {
  170. this.tableList = res.data.rows;
  171. this.rules.total = res.data.total;
  172. }
  173. });
  174. },
  175. createEdi(){
  176. this.isNew = true;
  177. this.sectionVisible = true;
  178. },
  179. createEdition(){
  180. this.$refs.sectionForm.validate(v=>{
  181. if(v){
  182. addAppVersionInfo(this.sectionForm).then(res=>{
  183. if(res.code == 200){
  184. this.$message.success('新增成功')
  185. this.sectionVisible = false;
  186. this.getList()
  187. }
  188. })
  189. }
  190. })
  191. },
  192. resetEdit(row){
  193. this.isNew = false;
  194. this.sectionForm =row;
  195. this.sectionVisible = true;
  196. },
  197. resetEdition(){
  198. // 修改
  199. resetAppVersionInfo(this.sectionForm).then(res=>{
  200. if(res.code == 200){
  201. this.$message.success('修改成功')
  202. this.sectionVisible = false;
  203. this.getList()
  204. }
  205. })
  206. },
  207. resetForm(){
  208. this.sectionForm = {
  209. platform:'',
  210. version:'',
  211. isForceUpdate:'',
  212. downloadUrl:'',
  213. status:'',
  214. id:''
  215. }
  216. // console.log(this.sectionForm.status)
  217. this.$refs.sectionForm.resetFields();
  218. this.sectionVisible = false;
  219. }
  220. },
  221. filters: {
  222. statusFilter(val) {
  223. if (val == "newest") {
  224. return "最新";
  225. }
  226. if (val == "history") {
  227. return "历史";
  228. }
  229. return "";
  230. }
  231. }
  232. };
  233. </script>
  234. <style lang="sass">
  235. </style>