seedSheepFile.vue 13 KB

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