editionList.vue 9.5 KB

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