index.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <template>
  2. <div class="app-container">
  3. <div class="main-right-box">
  4. <!-- 搜索条件 -->
  5. <div class="main-search-box">
  6. <el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" size="small">
  7. <el-form-item label="组织机构">
  8. <org-tree
  9. v-model="queryParams.hostOrg"
  10. @defaultOrg="getDefaultOrg"
  11. @checkChange="checkChange"
  12. @click="clickTreeNode"
  13. ref="orgTree"
  14. ></org-tree>
  15. </el-form-item>
  16. <el-form-item label="白令海版本" prop="agentVersion">
  17. <el-select
  18. style="width: 100%"
  19. v-model="queryParams.agentVersion"
  20. placeholder="请选择白令海版本"
  21. @change="onAgentVersionChange"
  22. clearable
  23. >
  24. <el-option
  25. v-for="item in beringVersions"
  26. :key="item.id"
  27. :label="item.text"
  28. :value="item.id"
  29. ></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="白令海目标版本" prop="uploadVersion">
  33. <el-select
  34. style="width: 100%"
  35. v-model="queryParams.uploadVersion"
  36. placeholder="请选择白令海版本"
  37. @change="onUploadVersionChange"
  38. clearable
  39. >
  40. <el-option
  41. v-for="item in beringVersions"
  42. :key="item.id"
  43. :label="item.text"
  44. :value="item.id"
  45. ></el-option>
  46. </el-select>
  47. </el-form-item>
  48. <el-form-item label="白令海状态" prop="hostStatus">
  49. <el-select style="width: 100%;" clearable v-model="queryParams.hostStatus" placeholder="请选择白令海状态"
  50. >
  51. <el-option v-for="dict in dict.type.deploy_bering_status" :key="dict.value" :label="dict.label"
  52. :value="dict.value"/>
  53. </el-select>
  54. </el-form-item>
  55. <el-form-item label="主机IP" prop="hostIp">
  56. <el-input v-model="queryParams.hostIp" :maxlength="50" clearable placeholder="请输入主机IP"/>
  57. </el-form-item>
  58. </el-form>
  59. <el-row :gutter="10">
  60. <el-col :span="1.5">
  61. <el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"
  62. >搜索
  63. </el-button>
  64. </el-col>
  65. <el-col :span="1.5">
  66. <el-button icon="el-icon-refresh" size="mini" type="primary" @click="resetQuery"
  67. >重置
  68. </el-button>
  69. </el-col>
  70. <el-col :span="1.5">
  71. <el-button icon="el-icon-folder" size="mini" type="primary" @click="onManageContent"
  72. >白令海版本管理
  73. </el-button>
  74. </el-col>
  75. <el-col :span="1.5">
  76. <el-button icon="el-icon-position" size="mini" type="primary" @click="resetQuery"
  77. >批量升级
  78. </el-button>
  79. </el-col>
  80. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  81. </el-row>
  82. </div>
  83. <el-table
  84. v-loading="loading"
  85. :data="packageInfoList"
  86. border
  87. height="646" size="small" >
  88. <el-table-column align="center" label="序号" width="60">
  89. <template v-slot:default="scope">
  90. <span v-text="getPageIndex(scope.$index)"> </span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column align="center" label="所属机构" prop="orgName"/>
  94. <el-table-column align="center" label="主机IP" prop="hostIp" :show-overflow-tooltip="true" scoped-slot="hostIp" width="320"/>
  95. <el-table-column align="center" label="白令海状态" prop="hostStatus">
  96. <template slot-scope="scope">
  97. <dict-tag :options="dict.type.deploy_bering_status" :value="scope.row.hostStatus"/>
  98. </template>
  99. </el-table-column>
  100. <el-table-column align="center" label="白令海当前版本号" prop="agentVersion"/>
  101. <el-table-column align="center" label="白令海目标版本号" prop="uploadVersion"/>
  102. <el-table-column
  103. class-name="small-padding fixed-width"
  104. label="操作"
  105. align="center"
  106. width="120"
  107. >
  108. <template slot-scope="{ row }">
  109. <el-button v-if="row.upgradeFlag === 1 && row.hostStatus === 1"
  110. class="el-icon-position"
  111. size="mini"
  112. type="primary"
  113. @click="onManageContent(row)"
  114. >升级
  115. </el-button
  116. >
  117. <el-button
  118. v-else
  119. class="el-icon-position"
  120. size="mini"
  121. type="primary"
  122. disabled
  123. >升级
  124. </el-button
  125. >
  126. </template>
  127. </el-table-column>
  128. </el-table>
  129. <pagination v-show="total > 0" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNum" :total="total"
  130. @pagination="getList"/>
  131. </div>
  132. </div>
  133. </template>
  134. <script>
  135. import {
  136. upgradeBeringList,beringVersionList
  137. } from "@/api/deploy/bering";
  138. import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
  139. export default {
  140. name: "BeringStatus",
  141. computed: {
  142. },
  143. components: {OrgTree},
  144. dicts: ['deploy_bering_status'],
  145. data() {
  146. return {
  147. // 遮罩层
  148. loading: true,
  149. // 选中数组
  150. ids: [],
  151. // 非单个停用
  152. single: true,
  153. // 非多个停用
  154. multiple: true,
  155. // 显示搜索条件
  156. showSearch: true,
  157. // 总条数
  158. total: 0,
  159. // 表数据
  160. packageInfoList: [],
  161. // 表数据
  162. packageServerList: [],
  163. // 弹出层标题
  164. title: "",
  165. // 是否显示弹出层
  166. open: false,
  167. // 日期范围
  168. dateRange: [],
  169. // 查询参数
  170. queryParams: {
  171. pageNum: 1,
  172. pageSize: 10,
  173. hostOrg: null,
  174. agentVersion: null,
  175. uploadVersion: null,
  176. hostIp: null,
  177. hostStatus:null
  178. },
  179. beringVersions:[],
  180. };
  181. },
  182. created() {
  183. beringVersionList().then((d) => {
  184. this.beringVersions = d.data;
  185. });
  186. this.getList();
  187. },
  188. methods: {
  189. getDefaultOrg(node) {
  190. this.queryParams.hostOrg = node.id;
  191. this.getList();
  192. },
  193. //单选框状态改变
  194. checkChange(state) {
  195. this.queryParams.checkSub = state;
  196. this.getList();
  197. },
  198. // 节点单击事件
  199. clickTreeNode(data) {
  200. if(data==null){
  201. return;
  202. }
  203. this.queryParams.hostOrg = data.id;
  204. this.getList();
  205. },
  206. getPageIndex($index) {
  207. //表格序号
  208. return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
  209. },
  210. /** 查询升级包列表 */
  211. getList() {
  212. this.loading = true;
  213. console.log("123456")
  214. this.queryParams.hostOrg = null;
  215. upgradeBeringList(this.queryParams).then(response => {
  216. this.packageInfoList = response.rows;
  217. this.total = response.total;
  218. this.loading = false;
  219. }
  220. ).catch((err) => {
  221. this.loading = false;
  222. });
  223. },
  224. /** 搜索按钮操作 */
  225. handleQuery() {
  226. this.queryParams.pageNum = 1;
  227. this.getList();
  228. },
  229. /** 重置按钮操作 */
  230. resetQuery() {
  231. this.dateRange = [];
  232. this.resetForm("queryForm");
  233. this.handleQuery();
  234. },
  235. onManageContent(){
  236. //路由名称:upgradeHostManager
  237. //this.$router.push({ name:"upgradeHostManager",params:{id:id,hostId:row.hostId}});
  238. let path = `/deploy/beringpackage/content`;
  239. this.$router.push(path);
  240. },
  241. onAgentVersionChange(val){
  242. let data = this.beringVersions.find((a) => a.id === val);
  243. if (data) {
  244. this.queryParams.agentVersion = data.text;
  245. }
  246. },
  247. onUploadVersionChange(val){
  248. let data = this.beringVersions.find((a) => a.id === val);
  249. if (data) {
  250. this.queryParams.uploadVersion = data.text;
  251. }
  252. },
  253. }
  254. };
  255. </script>
  256. <style lang="scss" scoped>
  257. </style>