FormulaTemplate.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023
  1. <template>
  2. <div>
  3. <el-card class="box-card">
  4. <!-- 搜索区域 -->
  5. <div class="search-bx1">
  6. <el-input v-model="searchData.name" placeholder="配方名称" style="width: 180px;" class="g-mr20 g-mb20" clearable />
  7. <el-select v-model="searchData.calf_category_id" filterable placeholder="犊牛类型" class="g-mr20" style="width: 180px;" clearable>
  8. <el-option v-for="item in calfTypeList" :key="item.id" :label="item.name" :value="item.id" />
  9. </el-select>
  10. <el-input-number v-model="searchData.min_daily_age" style="width:120px;" :controls="false" placeholder="日龄" />
  11. <span style="margin:0px 8px;">至</span>
  12. <el-input-number v-model="searchData.max_daily_age" style="width:120px;" class="g-mr20" :controls="false" placeholder="日龄" />
  13. <el-button type="primary" @click="form_search">搜索</el-button>
  14. <el-button type="primary" @click="form_clear">重置</el-button>
  15. <el-button type="primary" v-if="isButtonEdit" @click="form_add">添加</el-button>
  16. <!-- <el-button type="primary" @click="form_export">导出</el-button> -->
  17. </div>
  18. <!-- 表格 -->
  19. <el-table key="0" :data="tableList" v-loading="tableLoading" element-loading-text="给我一点时间" border fit>
  20. <el-table-column label="序号" width="50px" align="center">
  21. <template slot-scope="scope">
  22. <span>{{ scope.row.id }}</span>
  23. </template>
  24. </el-table-column>
  25. <el-table-column label="配方名称" min-width="150px" align="center">
  26. <template slot-scope="scope">
  27. <span>{{ scope.row.name }}</span>
  28. </template>
  29. </el-table-column>
  30. <el-table-column label="犊牛类型" min-width="150px" align="center">
  31. <template slot-scope="scope">
  32. <span>{{ scope.row.calf_category_name }}</span>
  33. </template>
  34. </el-table-column>
  35. <el-table-column label="适用日龄" min-width="150px" align="center">
  36. <template slot-scope="scope">
  37. <span>{{ }}</span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column label="配方阶段数" min-width="150px" align="center">
  41. <template slot-scope="scope">
  42. <span>{{ }}</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column label="公犊增重指标(KG/日)" min-width="150px" align="center">
  46. <template slot-scope="scope">
  47. <span>{{ scope.row.male_calf_daily_weight }}</span>
  48. </template>
  49. </el-table-column>
  50. <el-table-column label="母犊增重指标(KG/日)" min-width="150px" align="center">
  51. <template slot-scope="scope">
  52. <span>{{ scope.row.female_calf_daily_weight }}</span>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  56. <template slot-scope="scope">
  57. <!-- 修改按钮 -->
  58. <el-button type="primary" v-if="isButtonEdit" size="mini" icon="el-icon-edit" @click="form_edit(scope.row)">修改</el-button>
  59. <!-- 删除按钮 -->
  60. <el-button type="danger" v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="form_delete(scope.row)">删除</el-button>
  61. </template>
  62. </el-table-column>
  63. </el-table>
  64. <!-- 分页区域 -->
  65. <el-pagination @size-change="change_size_page" @current-change="change_current_page" :current-page="searchData.page" :page-sizes="[1,5,10,20,30,50]" :page-size="searchData.page_size" layout="total, prev, pager, next" :total="searchData.total"/>
  66. </el-card>
  67. <!-- 弹窗 新增or修改 -->
  68. <el-dialog :title="addFormTxt[addFormStatus]" :visible.sync="addFormShow" @close="add_dialog_close" width="80%">
  69. <div class="">
  70. <el-form ref="addFormRef" :rules="addFormRules" :model="addForm" label-position="right" label-width="160px" style="width:80%;margin:0 auto 50px">
  71. <el-row :gutter="20">
  72. <el-col :span="12">
  73. <el-form-item label="配方名称:" prop="name">
  74. <el-input v-model="addForm.name" />
  75. </el-form-item>
  76. </el-col>
  77. <el-col :span="12">
  78. <el-form-item label="犊牛类型:" prop="calf_category_id">
  79. <el-select v-model="addForm.calf_category_id" filterable placeholder="请选择" class="filter-item" style="width: 100%;" >
  80. <el-option v-for="item in calfTypeList" :key="item.id" :label="item.name" :value="item.id" />
  81. </el-select>
  82. </el-form-item>
  83. </el-col>
  84. </el-row>
  85. <el-row :gutter="20">
  86. <el-col :span="12">
  87. <el-form-item label="公犊增重指标(KG/日):" prop="male_calf_daily_weight">
  88. <el-input v-model="addForm.male_calf_daily_weight" placeholder="建议填写,用以统计牛只成长达标率" />
  89. </el-form-item>
  90. </el-col>
  91. <el-col :span="12">
  92. <el-form-item label="母犊增重指标(KG/日):" prop="female_calf_daily_weight">
  93. <el-input v-model="addForm.female_calf_daily_weight" placeholder="建议填写,用以统计牛只成长达标率" />
  94. </el-form-item>
  95. </el-col>
  96. </el-row>
  97. <el-row :gutter="20" >
  98. <el-button type="primary" @click="add_step">增加一个阶段</el-button>
  99. </el-row>
  100. <el-row>
  101. <!-- 表格 -->
  102. <el-table key="0" ref="tableStep" :data="tableListStep" v-loading="tableLoadingStep" element-loading-text="给我一点时间" border fit>
  103. <el-table-column label="阶段" width="50px" align="center">
  104. <template slot-scope="scope">
  105. <span>{{ scope.row.id }}</span>
  106. </template>
  107. </el-table-column>
  108. <el-table-column label="开始日龄" min-width="150px" align="center">
  109. <template slot-scope="scope">
  110. <span>{{ scope.row.start_daily_age }}</span>
  111. </template>
  112. </el-table-column>
  113. <el-table-column label="结束日龄" min-width="150px" align="center">
  114. <template slot-scope="scope">
  115. <span>{{ scope.row.end_daily_age }}</span>
  116. </template>
  117. </el-table-column>
  118. <el-table-column label="饲料类型" min-width="150px" align="center">
  119. <template slot-scope="scope">
  120. <span>{{ scope.row.forage_name }}</span>
  121. </template>
  122. </el-table-column>
  123. <el-table-column label="日饲喂量(kg)" min-width="150px" align="center">
  124. <template slot-scope="scope">
  125. <span>{{ scope.row.daily_feed_number }}</span>
  126. </template>
  127. </el-table-column>
  128. <el-table-column label="第一班占比(%)" min-width="150px" align="center" >
  129. <template slot-scope="scope">
  130. <span>{{ scope.row.first_class_ratio }}</span>
  131. </template>
  132. </el-table-column>
  133. <el-table-column label="第二班占比(%)" min-width="150px" align="center" v-if="class_num == 2 || class_num == 3 || class_num == 4">
  134. <template slot-scope="scope">
  135. <span>{{ scope.row.second_class_ratio }}</span>
  136. </template>
  137. </el-table-column>
  138. <el-table-column label="第三班占比(%)" min-width="150px" align="center" v-if=" class_num == 3 || class_num == 4">
  139. <template slot-scope="scope">
  140. <span>{{ scope.row.third_class_ratio }}</span>
  141. </template>
  142. </el-table-column>
  143. <el-table-column label="第四班占比(%)" min-width="150px" align="center" v-if=" class_num == 4">
  144. <template slot-scope="scope">
  145. <span>{{ scope.row.fourth_class_ratio }}</span>
  146. </template>
  147. </el-table-column>
  148. <el-table-column label="班次允许误差(kg)" min-width="150px" align="center">
  149. <template slot-scope="scope">
  150. <span>{{ scope.row.allow_class_error }}</span>
  151. </template>
  152. </el-table-column>
  153. <el-table-column label="饲喂温度℃" min-width="150px" align="center">
  154. <template slot-scope="scope">
  155. <span>{{ scope.row.feed_temp }}</span>
  156. </template>
  157. </el-table-column>
  158. <el-table-column label="允许温差℃" min-width="150px" align="center">
  159. <template slot-scope="scope">
  160. <span>{{ scope.row.allow_temp_error }}</span>
  161. </template>
  162. </el-table-column>
  163. <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
  164. <template slot-scope="scope">
  165. <!-- 修改按钮 -->
  166. <el-button type="primary" v-if="isButtonEdit" size="mini" icon="el-icon-edit" @click="edit_step(scope.$index, scope.row)">修改</el-button>
  167. <!-- 删除按钮 -->
  168. <el-button type="danger" v-if="isButtonEdit" size="mini" icon="el-icon-delete" @click="delete_step(scope.$index, scope.row)">删除</el-button>
  169. </template>
  170. </el-table-column>
  171. </el-table>
  172. </el-row>
  173. </el-form>
  174. <div slot="footer" class="dialog-footer">
  175. <el-button type="primary" @click="addFormStatus==='create'?add_dialog_save():edit_dialog_save()">确认</el-button>
  176. <el-button @click="addFormShow = false">关闭</el-button>
  177. </div>
  178. </div>
  179. </el-dialog>
  180. <!-- 弹窗 新增or修改 -->
  181. <el-dialog :title="addFormTxtStep[addFormStatusStep]" :visible.sync="addFormShowStep" @close="add_step_close" width="80%">
  182. <div class="">
  183. <el-form ref="addFormRefStep" :rules="addFormRulesStep" :model="addFormStep" label-position="right" label-width="150px" style="width:80%;margin:0 auto 50px">
  184. <el-row :gutter="20">
  185. <el-col :span="12">
  186. <el-form-item label="阶段:" >
  187. <el-input v-model="addFormStep.id" placeholder="" disabled />
  188. </el-form-item>
  189. </el-col>
  190. </el-row>
  191. <el-row :gutter="20">
  192. <el-col :span="12">
  193. <el-form-item label="开始日龄:" prop="start_daily_age">
  194. <el-input v-model="addFormStep.start_daily_age" placeholder="" />
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="12">
  198. <el-form-item label="结束日龄:" prop="end_daily_age">
  199. <el-input v-model="addFormStep.end_daily_age" placeholder="" />
  200. </el-form-item>
  201. </el-col>
  202. </el-row>
  203. <el-row :gutter="20">
  204. <el-col :span="12">
  205. <el-form-item label="饲料类型:" prop="forage_id">
  206. <el-select v-model="addFormStep.forage_id" filterable placeholder="请选择" style="width: 100%;" >
  207. <el-option v-for="item in forageList" :key="item.id" :label="item.name" :value="item.id" />
  208. </el-select>
  209. </el-form-item>
  210. </el-col>
  211. <el-col :span="12">
  212. <el-form-item label="日饲喂量(kg):" prop="daily_feed_number">
  213. <el-input v-model="addFormStep.daily_feed_number" placeholder="" />
  214. </el-form-item>
  215. </el-col>
  216. </el-row>
  217. <el-row :gutter="20">
  218. <el-col :span="12">
  219. <el-form-item label="第一班占比(%):" prop="first_class_ratio">
  220. <el-input v-model="addFormStep.first_class_ratio" placeholder="" />
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="12">
  224. <el-form-item label="第二班占比(%):" prop="second_class_ratio" v-if="class_num == 2 || class_num == 3 || class_num == 4">
  225. <el-input v-model="addFormStep.second_class_ratio" placeholder="" />
  226. </el-form-item>
  227. </el-col>
  228. </el-row>
  229. <el-row :gutter="20">
  230. <el-col :span="12">
  231. <el-form-item label="第三班占比(%):" prop="third_class_ratio" v-if=" class_num == 3 || class_num == 4">
  232. <el-input v-model="addFormStep.third_class_ratio" placeholder="" />
  233. </el-form-item>
  234. </el-col>
  235. <el-col :span="12">
  236. <el-form-item label="第四班占比(%):" prop="fourth_class_ratio" v-if=" class_num == 4">
  237. <el-input v-model="addFormStep.fourth_class_ratio" placeholder="" />
  238. </el-form-item>
  239. </el-col>
  240. </el-row>
  241. <el-row :gutter="20">
  242. <el-col :span="12">
  243. <el-form-item label="饲喂温度℃:" prop="feed_temp">
  244. <el-input v-model="addFormStep.feed_temp" placeholder="" />
  245. </el-form-item>
  246. </el-col>
  247. <el-col :span="12">
  248. <el-form-item label="允许温差℃:" prop="allow_temp_error">
  249. <el-input v-model="addFormStep.allow_temp_error" placeholder="" />
  250. </el-form-item>
  251. </el-col>
  252. </el-row>
  253. <el-row :gutter="20">
  254. <el-col :span="12">
  255. <el-form-item label="班次允许误差(kg):" prop="allow_class_error">
  256. <el-input v-model="addFormStep.allow_class_error" placeholder="" />
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="12">
  260. </el-col>
  261. </el-row>
  262. </el-form>
  263. <div slot="footer" class="dialog-footer">
  264. <el-button type="primary" @click="addFormStatusStep==='create'?add_step_save():edit_step_save()">确认</el-button>
  265. <el-button @click="addFormShowStep = false">关闭</el-button>
  266. </div>
  267. </div>
  268. </el-dialog>
  269. </div>
  270. </template>
  271. <script>
  272. import { ajaxDataGet, ajaxDataPost, ajaxDataPut, ajaxDataDelete, checkButtons} from '@/api/common'
  273. import { parseTime, json2excel } from '@/utils/index.js'
  274. export default {
  275. data() {
  276. return {
  277. //接口 - 获取 - 表格
  278. url_get_table:'/api/v1/ops/formula_plan/formula/list',
  279. //接口 - 新增 - 表格
  280. url_add_table:'/api/v1/ops/formula_plan/formula/add',
  281. //接口 - 修改 - 表格
  282. url_edit_table:'/api/v1/ops/formula_plan/formula/update',
  283. //接口 - 删除 - 表格
  284. url_delete_table:'/api/v1/ops/formula_plan/formula',
  285. //接口 - 下拉框 列表
  286. url_get_select1:'/api/v1/ops/calf_feed/enum/list',
  287. //接口 - 下拉框 列表 栏舍组
  288. url_get_select2:'/api/v1/ops/barn_group/list?page=1&page_size=1000',
  289. //按钮权限
  290. isButtonEdit:false,
  291. //获取 - 表格数据 - 参数
  292. searchData:{
  293. calf_code: "",
  294. barn_name: "",
  295. mother_code: "",
  296. calf_category_id:undefined,
  297. genders: undefined,
  298. status: undefined,
  299. min_daily_weight_gain: undefined,
  300. max_daily_weight_gain: undefined,
  301. min_daily_age: undefined,
  302. max_daily_age: undefined,
  303. page: 1, //页码
  304. page_size: 10, //每页数量
  305. total:0, //总页数
  306. pastureId: ""
  307. },
  308. tableLoading: false,
  309. //表格内容
  310. tableList:[
  311. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123',roleList:[2,3] },
  312. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123',roleList:[] },
  313. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  314. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  315. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  316. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  317. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  318. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  319. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  320. // { username:"admin", id:100, date:'2023-12-01',email:'测试信息1123' },
  321. // { username:"epans", id:200, date:'2023-12-01',email:'测试信息1123' },
  322. // { username:"derek", id:300, date:'2023-12-01',email:'测试信息1123' },
  323. ],
  324. //栏舍状态
  325. statusList:[
  326. {id: 1, value: '正常'},
  327. {id: 2, value: '空栏'},
  328. {id: 3, value: '损坏'},
  329. ],
  330. //犊牛类型
  331. calfTypeList:[
  332. ],
  333. //栏舍
  334. cowsheList:[
  335. ],
  336. //饲料
  337. forageList:[
  338. ],
  339. sexList:[
  340. {id: 1, value: '公'},
  341. {id: 2, value: '母'},
  342. ],
  343. addFormShow:false,
  344. addFormStatus: '',
  345. addFormTxt: { edit: '修改', create: '新增' },
  346. addForm:{
  347. name:'',id:'' ,calf_category_id:undefined, male_calf_daily_weight:undefined, female_calf_daily_weight:undefined,
  348. },
  349. addFormRules:{
  350. name: [ { required: true, message: '配方名称必填', trigger: 'blur' }, ],
  351. calf_category_id: [ { required: true, message: '犊牛类型必填', trigger: 'blur' }, ],
  352. },
  353. stepIndex:undefined,
  354. tableLoadingStep: false,
  355. //表格内容
  356. tableListStep:[
  357. ],
  358. addFormShowStep:false,
  359. addFormStatusStep: '',
  360. addFormTxtStep: { edit: '修改', create: '新增' },
  361. addFormStep:{
  362. name:'',id:'' , start_daily_age:undefined,end_daily_age:undefined,forage_id:undefined,forage_name:'',daily_feed_number:undefined,first_class_ratio:undefined,second_class_ratio:undefined,third_class_ratio:undefined,fourth_class_ratio:undefined,allow_class_error:undefined,feed_temp:undefined,feed_temp:undefined,allow_temp_error:undefined,
  363. },
  364. addFormRulesStep:{
  365. // name: [
  366. // { required: true, message: '类型必填', trigger: 'blur' },
  367. // ],
  368. },
  369. class_num:4
  370. }
  371. },
  372. created(){
  373. //获取按钮权限
  374. const isButtonEdit = checkButtons(this.$store.state.buttonsList, "配方模板编辑")
  375. this.isButtonEdit = isButtonEdit
  376. console.log('this.isButtonEdit==========',this.isButtonEdit)
  377. var me = this
  378. //获取下拉框
  379. this.get_select_list1()
  380. //表格 - 初始化
  381. setTimeout(function () {
  382. me.get_table_data()
  383. }, 1000);
  384. // this.get_table_data()
  385. },
  386. methods:{
  387. //获取 下拉框
  388. get_select_list1(){
  389. var me = this
  390. ajaxDataPost('/api/v1/ops/base_setting/calf_type/list?page=1&page_size=1000', {name:"" }).then(e => {
  391. console.log("穿梭框1:",e)
  392. //打印请求成功结果
  393. if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0 ){
  394. me.calfTypeList = []
  395. } else {
  396. me.calfTypeList = e.data.list
  397. }
  398. })
  399. ajaxDataPost('/api/v1/ops/barn/list?page=1&page_size=1000', {name:"",barn_group_name:"",status:undefined}).then(e => {
  400. console.log("穿梭框1:",e)
  401. //打印请求成功结果
  402. if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0 ){
  403. me.cowsheList = []
  404. } else {
  405. me.cowsheList = e.data.list
  406. }
  407. })
  408. ajaxDataGet('/api/v1/ops/base_setting/forage/list?page=1&page_size=1000', { }).then(e => {
  409. console.log("饲料下拉框1:",e)
  410. //打印请求成功结果
  411. if(e.data.list == null || e.data.list == undefined ||e.data.list.length == 0 ){
  412. me.forageList = []
  413. } else {
  414. me.forageList = e.data.list
  415. }
  416. })
  417. // 班次数量下拉框
  418. ajaxDataGet('/api/v1/ops/calf_feed/enum/list').then(e => {
  419. console.log(e)
  420. if(e.code === 200){
  421. var class_num = e.data.class_list.length
  422. } else {
  423. var class_num = 4
  424. }
  425. console.log("class_num========",class_num)
  426. me.class_num = class_num
  427. })
  428. },
  429. //获取 表格
  430. get_table_data() {
  431. var me = this
  432. me.tableLoading = true
  433. console.log("searchData======>", me.searchData)
  434. if( me.searchData.calf_category_id == ""){
  435. me.searchData.calf_category_id = undefined
  436. }
  437. var send_url = me.url_get_table + '?page=' + me.searchData.page + '&page_size=' + me.searchData.page_size
  438. ajaxDataPost(send_url, me.searchData).then(e => {
  439. console.log("表格请求结果:",e)
  440. //打印请求成功结果
  441. if(e.code == 200 ){
  442. me.tableList = e.data.list
  443. me.searchData.total = e.data.total; // 总数
  444. me.searchData.page = e.data.page; //页码
  445. me.searchData.page_size = e.data.page_size; //每页数量
  446. } else {
  447. me.$message({ type: 'error', message: '请求表格列表失败!' + e.msg, duration: 2000 })
  448. }
  449. setTimeout(() => {
  450. me.tableLoading = false
  451. }, 100)
  452. })
  453. },
  454. //搜索 查询表格
  455. form_search(){
  456. var me = this
  457. console.log('请求表格列表searchData',me.searchData)
  458. me.get_table_data()
  459. },
  460. //重置 表格
  461. form_clear(){
  462. var me = this
  463. me.searchData.calf_code = ""
  464. me.searchData.barn_name = ""
  465. me.searchData.mother_code = ""
  466. me.searchData.calf_category_id = undefined
  467. me.searchData.genders = undefined
  468. me.searchData.status = undefined
  469. me.searchData.min_daily_weight_gain = undefined
  470. me.searchData.max_daily_weight_gain = undefined
  471. me.searchData.min_daily_age = undefined
  472. me.searchData.max_daily_age = undefined
  473. me.get_table_data()
  474. },
  475. //监听 page_size 改变的事件
  476. change_size_page(item){
  477. console.log(item)
  478. // this.searchData.page_size = item
  479. // this.getUserList()
  480. },
  481. //监听 page 改变的事件
  482. change_current_page(item){
  483. console.log(item)
  484. this.searchData.page = item
  485. this.get_table_data()
  486. },
  487. //清空弹窗表单信息
  488. reset_form(){
  489. this.addForm.name = ''
  490. this.addForm.id = undefined
  491. this.addForm.barn_group_id = undefined
  492. this.addForm.number = ''
  493. },
  494. //新增
  495. form_add() {
  496. this.reset_form()
  497. this.addFormStatus = 'create'
  498. this.addFormShow = true
  499. this.$nextTick(() => {
  500. this.$refs['addFormRef'].clearValidate()
  501. })
  502. },
  503. //编辑
  504. form_edit(row) {
  505. this.reset_form()
  506. var me = this
  507. console.log('行内容row=========', row)
  508. //编辑行内容赋值
  509. this.addForm = Object.assign({}, row)
  510. if(row.genders == 0){
  511. this.addForm.genders = undefined
  512. }
  513. me.tableListStep = row.formula_stage
  514. this.addFormStatus = 'edit'
  515. this.addFormShow = true
  516. this.$nextTick(() => {
  517. this.$refs['addFormRef'].clearValidate()
  518. })
  519. },
  520. //新增关闭
  521. add_dialog_close(){
  522. //内容重置
  523. this.$refs['addFormRef'].resetFields()
  524. },
  525. //新增 保存
  526. add_dialog_save() {
  527. var me = this
  528. this.$refs['addFormRef'].validate(valid => {
  529. //验证成功
  530. if (valid) {
  531. //发起请求
  532. var send_data = {
  533. "name": me.addForm.name,
  534. "calf_category_id": me.addForm.calf_category_id,
  535. "calf_category_name":'11',
  536. "male_calf_daily_weight": parseFloat(me.addForm.male_calf_daily_weight),
  537. "female_calf_daily_weight": parseFloat(me.addForm.female_calf_daily_weight),
  538. "formula_stage": me.tableListStep
  539. }
  540. console.log("弹窗参数:", send_data)
  541. //关闭弹窗
  542. // me.addFormShow = false
  543. //加载 - 发送新增保存
  544. ajaxDataPost(me.url_add_table, send_data).then(e => {
  545. console.log("新增结果:",e)
  546. //打印请求成功结果
  547. if(e.code == 200 ){
  548. me.$message({ type: 'success', message: '新增成功!' , duration: 2000 })
  549. //关闭弹窗
  550. me.addFormShow = false
  551. me.get_table_data()
  552. } else {
  553. me.$message({ type: 'error', message: '新增失败!' + e.msg, duration: 2000 })
  554. }
  555. })
  556. }
  557. })
  558. },
  559. //编辑 保存
  560. edit_dialog_save(){
  561. var me = this
  562. this.$refs['addFormRef'].validate(valid => {
  563. //验证成功
  564. if (valid) {
  565. //发起请求
  566. var send_data = {
  567. "id": me.addForm.id,
  568. "name": me.addForm.name,
  569. "calf_category_id": me.addForm.calf_category_id,
  570. "calf_category_name":'11',
  571. "male_calf_daily_weight": parseFloat(me.addForm.male_calf_daily_weight),
  572. "female_calf_daily_weight": parseFloat(me.addForm.female_calf_daily_weight),
  573. "formula_stage": me.tableListStep
  574. }
  575. // var name = this.barnGroupList.find(obj => obj.id == me.addForm.barn_group_id).name
  576. // console.log(name)
  577. // 编辑保存
  578. console.log("弹窗参数:", send_data)
  579. //关闭弹窗
  580. // me.addFormShow = false
  581. //加载 - 发送新增保存
  582. ajaxDataPut(me.url_edit_table, send_data).then(e => {
  583. console.log("编辑结果:",e)
  584. //打印请求成功结果
  585. if(e.code == 200 ){
  586. me.$message({ type: 'success', message: '编辑成功!' , duration: 2000 })
  587. //关闭弹窗
  588. me.addFormShow = false
  589. me.get_table_data()
  590. } else {
  591. me.$message({ type: 'error', message: '编辑失败!' + e.msg, duration: 2000 })
  592. }
  593. })
  594. }
  595. })
  596. },
  597. form_delete(row) {
  598. var me = this
  599. me.$confirm('是否删除此条内容?', '提示', {
  600. confirmButtonText: '确定',
  601. cancelButtonText: '取消',
  602. type: 'warning'
  603. }).then(() => {
  604. console.log("删除的ID参数:", row.id)
  605. //加载 - 发送新增保存
  606. ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
  607. console.log("编辑结果:",e)
  608. //打印请求成功结果
  609. if(e.code == 200 ){
  610. me.$message({ type: 'success', message: '删除成功!' });
  611. me.get_table_data()
  612. } else {
  613. me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
  614. }
  615. })
  616. }).catch(() => {
  617. me.$message({
  618. type: 'info',
  619. message: '已取消删除'
  620. });
  621. });
  622. },
  623. //清空弹窗表单信息
  624. reset_step(){
  625. this.addFormStep.name = ''
  626. this.addFormStep.start_daily_age = undefined
  627. this.addFormStep.end_daily_age = undefined
  628. this.addFormStep.forage_id = undefined
  629. this.addFormStep.forage_name=""
  630. this.addFormStep.daily_feed_number = undefined
  631. this.addFormStep.first_class_ratio = undefined
  632. this.addFormStep.second_class_ratio = undefined
  633. this.addFormStep.third_class_ratio = undefined
  634. this.addFormStep.fourth_class_ratio = undefined
  635. this.addFormStep.allow_class_error = undefined
  636. this.addFormStep.feed_temp = undefined
  637. this.addFormStep.allow_temp_error = undefined
  638. },
  639. //新增
  640. add_step() {
  641. this.reset_step()
  642. this.addFormStatusStep = 'create'
  643. this.addFormStep.id = this.tableListStep.length + 1
  644. this.addFormShowStep = true
  645. this.$nextTick(() => {
  646. this.$refs['addFormRefStep'].clearValidate()
  647. })
  648. },
  649. //编辑
  650. edit_step(index, row) {
  651. this.stepIndex = index
  652. console.log('行内容row=========', row)
  653. //编辑行内容赋值
  654. this.addFormStep = Object.assign({}, row)
  655. if(row.forage_id == 0){
  656. this.addFormStep.forage_id = undefined
  657. }
  658. this.addFormStatusStep = 'edit'
  659. this.addFormShowStep = true
  660. this.$nextTick(() => {
  661. this.$refs['addFormRefStep'].clearValidate()
  662. })
  663. },
  664. //新增关闭
  665. add_step_close(){
  666. //内容重置
  667. this.$refs['addFormRefStep'].resetFields()
  668. this.reset_step()
  669. this.addFormShowStep = false
  670. },
  671. //新增 保存
  672. add_step_save() {
  673. var me = this
  674. this.$refs['addFormRefStep'].validate(valid => {
  675. //验证成功
  676. if (valid) {
  677. //发起请求
  678. var forage_name = me.forageList.find(obj => obj.id == me.addFormStep.forage_id).name
  679. var send_data = {
  680. "id": me.addFormStep.id,
  681. "name": me.addFormStep.name,
  682. "start_daily_age":me.addFormStep.start_daily_age,
  683. "end_daily_age":me.addFormStep.end_daily_age,
  684. "forage_id": me.addFormStep.forage_id,
  685. "forage_name": forage_name ,
  686. "daily_feed_number":me.addFormStep.daily_feed_number,
  687. "first_class_ratio": me.addFormStep.first_class_ratio,
  688. "second_class_ratio":me.addFormStep.second_class_ratio,
  689. "third_class_ratio": me.addFormStep.third_class_ratio,
  690. "fourth_class_ratio": me.addFormStep.fourth_class_ratio,
  691. "allow_class_error": me.addFormStep.allow_class_error,
  692. "feed_temp": me.addFormStep.feed_temp,
  693. "allow_temp_error": me.addFormStep.allow_temp_error,
  694. }
  695. console.log("弹窗参数:", send_data)
  696. //关闭弹窗
  697. me.addFormShowStep = false
  698. me.tableListStep.push(send_data)
  699. }
  700. })
  701. },
  702. //编辑 保存
  703. edit_step_save(){
  704. var me = this
  705. this.$refs['addFormRefStep'].validate(valid => {
  706. //验证成功
  707. if (valid) {
  708. var forage_name = me.forageList.find(obj => obj.id == me.addFormStep.forage_id).name
  709. //发起请求
  710. var send_data = {
  711. "id": me.addFormStep.id,
  712. "name": me.addFormStep.name,
  713. "start_daily_age":me.addFormStep.start_daily_age,
  714. "end_daily_age":me.addFormStep.end_daily_age,
  715. "forage_id": me.addFormStep.forage_id,
  716. "forage_name": forage_name ,
  717. "daily_feed_number":me.addFormStep.daily_feed_number,
  718. "first_class_ratio": me.addFormStep.first_class_ratio,
  719. "second_class_ratio":me.addFormStep.second_class_ratio,
  720. "third_class_ratio": me.addFormStep.third_class_ratio,
  721. "fourth_class_ratio": me.addFormStep.fourth_class_ratio,
  722. "allow_class_error": me.addFormStep.allow_class_error,
  723. "feed_temp": me.addFormStep.feed_temp,
  724. "allow_temp_error": me.addFormStep.allow_temp_error,
  725. }
  726. // 编辑保存
  727. console.log("弹窗参数:", send_data)
  728. me.addFormShowStep = false
  729. var stepIndex = me.stepIndex
  730. this.$set(me.tableListStep, stepIndex, send_data)
  731. console.log('me.tableListStep============',me.tableListStep)
  732. }
  733. })
  734. },
  735. delete_step(index, row) {
  736. var me = this
  737. me.$confirm('是否删除此条内容?', '提示', {
  738. confirmButtonText: '确定',
  739. cancelButtonText: '取消',
  740. type: 'warning'
  741. }).then(() => {
  742. console.log('点击了 - 删除一个阶段index===',index,'row===',row)
  743. me.tableListStep.splice(index, 1)
  744. //加载 - 发送新增保存
  745. // ajaxDataDelete(me.url_delete_table + '/' +row.id, {}).then(e => {
  746. // console.log("编辑结果:",e)
  747. // //打印请求成功结果
  748. // if(e.code == 200 ){
  749. // me.$message({ type: 'success', message: '删除成功!' });
  750. // me.get_table_data()
  751. // } else {
  752. // me.$message({ type: 'error', message: '删除失败!' + e.msg, duration: 2000 })
  753. // }
  754. // })
  755. }).catch(() => {
  756. me.$message({
  757. type: 'info',
  758. message: '已取消删除'
  759. });
  760. });
  761. },
  762. form_export() {
  763. //获取请求表格数据的参数
  764. //this.download.getdataListParm.parammaps = this.tableObj.getdataListParm.parammaps
  765. //请求表格
  766. // GetDataByName(this.download.getdataListParm).then(response => {
  767. // if (response.data.list !== null) {
  768. // this.download.list = response.data.list
  769. // } else {
  770. // this.download.list = []
  771. // }
  772. // var excelDatas = [
  773. // {
  774. // tHeader: ['表头1', '表头2', '表头3', '表头4',],
  775. // filterVal: ['title1', 'title2', 'title3', 'title4'],
  776. // tableDatas: this.download.list,
  777. // sheetName: 'Sheet1'
  778. // }
  779. // ]
  780. // json2excel(excelDatas, '表格大标题', true, 'xlsx')
  781. // })
  782. var excelDatas = [
  783. {
  784. tHeader: ['表头1', '表头2', '表头3', '表头4',],
  785. filterVal: ['title1', 'title2', 'title3', 'title4'],
  786. tableDatas: [
  787. {title1: "内容1",title2: "内容2",title3: "内容3",title4: "内容4"},
  788. {title1: "内容11",title2: "内容22",title3: "内容32",title4: "内容44"},
  789. {title1: "内容111",title2: "内容222",title3: "内容333",title4: "内容444"},
  790. ],
  791. sheetName: 'Sheet1'
  792. }
  793. ]
  794. json2excel(excelDatas, '表格大标题', true, 'xlsx')
  795. }
  796. }
  797. }
  798. </script>
  799. <!-- 加了scoped,则是仅在此组件里生效 -->
  800. <style scoped>
  801. </style>