seedSheepFile.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. <template>
  2. <div class="seedSheepFile">
  3. <h2
  4. style="
  5. margin-bottom: 20px;
  6. padding-bottom: 7px;
  7. border-bottom: 2px solid #ddd;
  8. "
  9. >
  10. 种羊档案
  11. </h2>
  12. <header id="header">
  13. <el-row type="flex" :gutter="20">
  14. <el-col :span="4">
  15. <el-input
  16. v-model="searchStr"
  17. placeholder="请选择"
  18. ></el-input>
  19. </el-col>
  20. <el-col :span="4">
  21. <el-button type="primary" @click="getSeedSheepList"
  22. >查找</el-button
  23. >
  24. </el-col>
  25. <el-col :span="10">
  26. <!-- 暂时别删,要测试删除的话,先自己新增几条数据,别删已经存在的,这关乎到系谱信息档案 -->
  27. <el-button type="primary" @click="add">新增档案</el-button>
  28. </el-col>
  29. <el-col :span="4">
  30. <el-button-group>
  31. <el-button
  32. :type="sheepType == 0 ? 'primary' : ''"
  33. @click="shiftSheepType(0)"
  34. >种母羊</el-button
  35. >
  36. <el-button
  37. :type="sheepType == 1 ? 'primary' : ''"
  38. @click="shiftSheepType(1)"
  39. >种公羊</el-button
  40. >
  41. </el-button-group>
  42. </el-col>
  43. </el-row>
  44. </header>
  45. <section>
  46. <article class="table">
  47. <el-table
  48. :data="tableData"
  49. tooltip-effect="dark"
  50. style="width: 100%"
  51. >
  52. <el-table-column
  53. prop="id"
  54. label="种羊编码"
  55. width="100"
  56. ></el-table-column>
  57. <el-table-column label="入场时间" width="200">
  58. <template v-slot="scope">
  59. <span>{{
  60. scope.row["entryTime"].substr(0, 10)
  61. }}</span>
  62. </template>
  63. </el-table-column>
  64. <el-table-column
  65. prop="dayOfAge"
  66. label="入场日龄"
  67. ></el-table-column>
  68. <el-table-column label="种羊来源">
  69. <template v-slot="scope">
  70. <div
  71. v-for="item in $store.state['seedSheedSource']"
  72. :key="item.value"
  73. >
  74. <span
  75. v-if="item.value == scope.row['source']"
  76. >{{ item.label }}</span
  77. >
  78. </div>
  79. </template>
  80. </el-table-column>
  81. <el-table-column
  82. prop="position"
  83. label="当前位置"
  84. ></el-table-column>
  85. <el-table-column label="当前状态">
  86. <template v-slot="scope">
  87. <div
  88. v-for="item in $store.state['seedSheedStatus']"
  89. :key="item.value"
  90. >
  91. <span
  92. v-if="item.value == scope.row['status']"
  93. >{{ item.label }}</span
  94. >
  95. </div>
  96. </template>
  97. </el-table-column>
  98. <el-table-column
  99. prop="cost"
  100. label="成本价格(元)"
  101. ></el-table-column>
  102. <el-table-column
  103. prop="weight"
  104. label="体重(kg)"
  105. ></el-table-column>
  106. <el-table-column prop="feederName" label="饲养员">
  107. <template v-slot="scope">
  108. <div
  109. v-for="item in $store.state['workerList']"
  110. :key="item.value"
  111. >
  112. <span v-if="item.id == scope.row['feeder']">{{
  113. `${item.name}(${item.position})`
  114. }}</span>
  115. </div>
  116. </template>
  117. </el-table-column>
  118. <el-table-column label="等级评级">
  119. <template v-slot="scope">
  120. <div
  121. v-for="item in $store.state['seedSheedLevel']"
  122. :key="item.value"
  123. >
  124. <span v-if="item.value == scope.row['level']">{{
  125. item.label
  126. }}</span>
  127. </div>
  128. </template>
  129. </el-table-column>
  130. <el-table-column label="操作" width="150">
  131. <template v-slot="scope">
  132. <el-popconfirm
  133. title="是否删除此设备的信息?"
  134. @onConfirm="del(scope.row)"
  135. >
  136. <el-button
  137. slot="reference"
  138. type="text"
  139. size="small"
  140. >删除</el-button
  141. >
  142. </el-popconfirm>
  143. </template>
  144. </el-table-column>
  145. </el-table>
  146. <el-row type="flex" justify="end">
  147. <el-col :span="8" class="pagination">
  148. <el-pagination
  149. @current-change="pageChange"
  150. background
  151. layout="prev, pager, next"
  152. :page-count="Number(totalPages)"
  153. ></el-pagination>
  154. </el-col>
  155. </el-row>
  156. </article>
  157. </section>
  158. <el-dialog title="新增种羊档案" :visible.sync="isShow" width="45%">
  159. <el-row type="flex">
  160. <el-col :span="15">
  161. <el-form
  162. ref="addSeedSheepForm"
  163. :model="formData"
  164. :rules="rules"
  165. label-width="140px"
  166. >
  167. <el-form-item label="种羊编码">
  168. <el-input v-model="formData.id"></el-input>
  169. </el-form-item>
  170. <el-form-item label="日龄">
  171. <el-input v-model="formData.dayOfAge"></el-input>
  172. </el-form-item>
  173. <el-form-item label="种羊来源">
  174. <el-radio-group v-model="formData.source">
  175. <el-radio
  176. v-for="item in $store.state[
  177. 'seedSheedSource'
  178. ]"
  179. :key="item.value"
  180. :label="item.value"
  181. >{{ item.label }}</el-radio
  182. >
  183. </el-radio-group>
  184. </el-form-item>
  185. <el-form-item label="当前位置">
  186. <el-select
  187. v-model="formData.position"
  188. filterable
  189. placeholder="请选择"
  190. >
  191. <el-option
  192. v-for="item in $store.state['areaList']"
  193. :key="item.id"
  194. :label="item.name"
  195. :value="item.name"
  196. ></el-option>
  197. </el-select>
  198. </el-form-item>
  199. <el-form-item v-if="sheepType == 0" label="当前状态">
  200. <el-select
  201. v-model="formData.status"
  202. filterable
  203. placeholder="请选择"
  204. >
  205. <el-option
  206. v-for="item in $store.state[
  207. 'seedSheedStatus'
  208. ]"
  209. :key="item.value"
  210. :label="item.label"
  211. :value="item.value"
  212. ></el-option>
  213. </el-select>
  214. </el-form-item>
  215. <el-form-item v-if="sheepType == 1" label="当前状态">
  216. <el-select
  217. v-model="formData.status"
  218. filterable
  219. placeholder="请选择"
  220. >
  221. <el-option
  222. v-for="item in $store.state[
  223. 'seedRamSheedStatus'
  224. ]"
  225. :key="item.value"
  226. :label="item.label"
  227. :value="item.value"
  228. ></el-option>
  229. </el-select>
  230. </el-form-item>
  231. <el-form-item label="成本价格(元)">
  232. <el-input v-model="formData.cost"></el-input>
  233. </el-form-item>
  234. <el-form-item label="体重(kg)">
  235. <el-input v-model="formData.weight"></el-input>
  236. </el-form-item>
  237. <el-form-item label="饲养员">
  238. <el-select
  239. v-model="formData.feeder"
  240. filterable
  241. placeholder="请选择"
  242. >
  243. <el-option
  244. v-for="item in $store.state['workerList']"
  245. :key="item.id"
  246. :label="`${item.name}(${item.position})`"
  247. :value="item.id"
  248. ></el-option>
  249. </el-select>
  250. </el-form-item>
  251. <el-form-item label="等级评级">
  252. <el-radio-group v-model="formData.level">
  253. <el-radio
  254. v-for="item in $store.state[
  255. 'seedSheedLevel'
  256. ]"
  257. :key="item.value"
  258. :label="item.value"
  259. >{{ item.label }}</el-radio
  260. >
  261. </el-radio-group>
  262. </el-form-item>
  263. <el-form-item>
  264. <el-button @click="isShow = false">取 消</el-button>
  265. <el-button
  266. type="primary"
  267. @click="submitForm('addSeedSheepForm')"
  268. >保 存</el-button
  269. >
  270. </el-form-item>
  271. </el-form>
  272. </el-col>
  273. </el-row>
  274. </el-dialog>
  275. </div>
  276. </template>
  277. <script>
  278. import {
  279. reqSeedSheepList,
  280. reqAddSeedSheepFile,
  281. reqDelSeedSheepFile,
  282. } from "@/api/breed.js";
  283. const pageSize = 10;
  284. const rules = {};
  285. export default {
  286. name: "seedSheepFile",
  287. data() {
  288. return {
  289. page: 1,
  290. searchStr: "",
  291. sheepType: 0,
  292. tableData: [],
  293. totalPages: 0,
  294. isShow: false,
  295. rules,
  296. formData: {
  297. id: "",
  298. dayOfAge: "",
  299. source: 1,
  300. position: "",
  301. status: null,
  302. cost: null,
  303. weight: null,
  304. feeder: null,
  305. level: null,
  306. },
  307. };
  308. },
  309. created() {
  310. this.getSeedSheepList();
  311. },
  312. methods: {
  313. submitForm(formName) {
  314. this.$refs[formName].validate((valid) => {
  315. if (valid) {
  316. // 新增种羊档案
  317. this.formData.gender = this.sheepType;
  318. reqAddSeedSheepFile(this.formData)
  319. .then((res) => {
  320. // 获取种羊档案列表
  321. this.getSeedSheepList();
  322. // this.$message.success("新增种羊档案成功!");
  323. if (res.errCode) {
  324. this.$message.error(res.errMsg);
  325. } else {
  326. this.$message.success("成功");
  327. this.formData = {
  328. id: "",
  329. dayOfAge: "",
  330. source: 1,
  331. position: "",
  332. status: null,
  333. cost: null,
  334. weight: null,
  335. feeder: null,
  336. level: null,
  337. };
  338. this.isShow = false
  339. }
  340. })
  341. .catch((err) => {
  342. console.log(err);
  343. this.$message.error(err);
  344. });
  345. } else {
  346. return false;
  347. }
  348. });
  349. },
  350. // 获取种羊档案列表
  351. getSeedSheepList() {
  352. reqSeedSheepList({
  353. pageNum: this.page,
  354. pageSize,
  355. gender: this.sheepType,
  356. searchStr: this.searchStr,
  357. })
  358. .then((res) => {
  359. this.tableData = res.content;
  360. this.totalPages = res.totalPages;
  361. })
  362. .catch((err) => {
  363. console.log(err);
  364. });
  365. },
  366. // 羊类型切换
  367. shiftSheepType(sheepType) {
  368. if (sheepType == this.sheepType) return;
  369. this.sheepType = sheepType;
  370. this.getSeedSheepList();
  371. },
  372. add() {
  373. this.isShow = true;
  374. },
  375. del(row) {
  376. reqDelSeedSheepFile({ id: row.id })
  377. .then((res) => {
  378. this.getSeedSheepList();
  379. this.$message.success("删除种羊档案成功!");
  380. })
  381. .catch((err) => {
  382. console.log(err);
  383. this.$message.error("删除种羊档案失败!");
  384. });
  385. },
  386. pageChange(p) {
  387. this.page = p;
  388. this.getSeedSheepList();
  389. },
  390. },
  391. };
  392. </script>
  393. <style lang="scss" scoped>
  394. #header {
  395. margin-bottom: 15px;
  396. }
  397. .table {
  398. .pagination {
  399. margin-top: 20px;
  400. }
  401. }
  402. </style>