| | |
| | | width="60%" |
| | | :visible.sync="visible" |
| | | > |
| | | <avue-form ref="form" v-model="form" :option="option" @submit="submit"> |
| | | <avue-form ref="form" v-if="visible" v-model="form" :option="option" @submit="submit"> |
| | | </avue-form> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { mapState } from "vuex"; |
| | | import { getLandList } from "@/api/land/land"; |
| | | import { getUserList } from "@/api/system/user"; |
| | | import { getStrainList } from "@/api/farmplant/strain"; |
| | | import { save } from "@/api/farmplant/recovery"; |
| | | import {mapState} from "vuex"; |
| | | import {getLandList} from "@/api/land/land"; |
| | | import {getUserList} from "@/api/system/user"; |
| | | import {getDetail} from "@/api/soldr/soldr"; |
| | | import {selectStockFa} from "@/api/stockfactory/stockfactory"; |
| | | import {save} from "@/api/farm/farmingrecord"; |
| | | |
| | | export default { |
| | | data() { |
| | | const validateNum = (rule, value, callback) => { |
| | | if (!/^[1-9]\d*$/.test(value)) { |
| | | callback(new Error("请输入正数")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | |
| | | return { |
| | | title:"采收/捕捞", |
| | | form: {}, |
| | | title: "农事操作", |
| | | form: { |
| | | num: '' |
| | | }, |
| | | option: { |
| | | emptyBtn: false, |
| | | submitText: "保存", |
| | | gutter: 30, |
| | | column: [ |
| | | { |
| | | label: "采收品种", |
| | | label: "农事类型", |
| | | prop: "type", |
| | | type: "select", |
| | | labelWidth: 110, |
| | | dicUrl: "/api/blade-system/dict-biz/dictionary?code=farmingType", |
| | | dicFormatter:(res)=>{ |
| | | let typeList = res.data.filter(e=>{ |
| | | return e.dictKey<10 |
| | | }) |
| | | return typeList |
| | | }, |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey", |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择农事类型", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属地块", |
| | | prop: "landId", |
| | | type: "tree", |
| | | dicData: [], |
| | | props: { |
| | | label: "landName", |
| | | value: "id", |
| | | }, |
| | | cascader: ["strainId"], |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属地块", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "农产品", |
| | | prop: "strainId", |
| | | span: 12, |
| | | span: 7, |
| | | type: "tree", |
| | | dicData: [], |
| | | props: { |
| | | label: "strainName", |
| | | value: "id" |
| | | value: "id", |
| | | }, |
| | | labelWidth: 145, |
| | | dicUrl: `/api/farmPlant/strain-tree?landId={{key}}`, |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入采收品种", |
| | | trigger: "blur", |
| | | message: "请选择农产品", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | disabled:true, |
| | | }, |
| | | { |
| | | label: "采收地块", |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | prop: "landId", |
| | | type:"tree", |
| | | label: "农资", |
| | | prop: "stockId", |
| | | type: "tree", |
| | | span: 8, |
| | | dicData: [], |
| | | props: { |
| | | label: "landName", |
| | | value: "id" |
| | | label: "spn", |
| | | value: "id", |
| | | }, |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择采收地块", |
| | | trigger: "click", |
| | | message: "请选择农资", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | display: false, |
| | | change: res => { |
| | | this.getDe(res) |
| | | }, |
| | | }, |
| | | { |
| | | label: "采收重量", |
| | | prop: "weight", |
| | | tip: '公斤', |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | controls:false, |
| | | type:'number', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入采收重量 公斤", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | label: "待使用数量", |
| | | prop: "num", |
| | | disabled: true, |
| | | span: 5, |
| | | display: false, |
| | | }, |
| | | { |
| | | label: "使用数量", |
| | | type: "number", |
| | | prop: "snum", |
| | | span: 6, |
| | | display: false, |
| | | rules:[{required: false, validator: validateNum, trigger: 'blur'}] |
| | | }, |
| | | { |
| | | label: "作业方式", |
| | | prop: "jobWay", |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | span: 6, |
| | | labelWidth: 110, |
| | | type: "select", |
| | | value:"0", |
| | | dicData:[ |
| | | value: '0', |
| | | dicData: [ |
| | | { |
| | | label:"人工", |
| | | value:"0" |
| | | label: "人工", |
| | | value: "0", |
| | | }, |
| | | { |
| | | label:"机械", |
| | | value:"1" |
| | | label: "机械", |
| | | value: "1", |
| | | }, |
| | | ], |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择作业方式", |
| | | trigger: "click", |
| | | message: "请输入作业方式", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "采收时间", |
| | | label: "农事操作时间", |
| | | prop: "time", |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | type: "datetime", |
| | | format: "yyyy-MM-dd HH:mm", |
| | | valueFormat: "yyyy-MM-dd HH:mm", |
| | | type: "date", |
| | | format: "yyyy-MM-dd", |
| | | valueFormat: "yyyy-MM-dd", |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择采收时间", |
| | | trigger: "click", |
| | | message: "请选择农事操作时间", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | | // label: "采收产品", |
| | | // prop: "farmArea", |
| | | // span: 12, |
| | | // labelWidth: 145, |
| | | // width: 110, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: "请输入采收产品", |
| | | // trigger: "click", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | { |
| | | label: "操作人", |
| | | prop: "operator", |
| | |
| | | label: "realName", |
| | | value: "id", |
| | | }, |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入操作人", |
| | | trigger: "click", |
| | | required: false, |
| | | message: "请选择操作人", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "产品等级", |
| | | prop: "leaves", |
| | | span: 12, |
| | | labelWidth: 145, |
| | | width: 110, |
| | | value:"0", |
| | | type: "select", |
| | | dicData:[ |
| | | { |
| | | label:"一等品", |
| | | value:"0" |
| | | }, |
| | | { |
| | | label:"二等品", |
| | | value:"1" |
| | | }, |
| | | { |
| | | label:"三等品", |
| | | value:"2" |
| | | }, |
| | | { |
| | | label:"四等品", |
| | | value:"3" |
| | | }, |
| | | { |
| | | label:"五等品", |
| | | value:"4" |
| | | }, |
| | | ], |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入产品等级", |
| | | trigger: "click", |
| | | }, |
| | | ], |
| | | label: "农事照片", |
| | | prop: "tp", |
| | | type: "upload", |
| | | labelWidth: 110, |
| | | dataType: "string", |
| | | span: 24, |
| | | limit: 5, |
| | | listType: "picture-card", |
| | | tip: "建议上传手机横屏拍摄的照片,宽高比16:9,最多上传5张", |
| | | canvasOption: { |
| | | text: "", |
| | | ratio: 1.0, |
| | | }, |
| | | propsHttp: { |
| | | res: "data", |
| | | url: "url" |
| | | }, |
| | | action: "/api/blade-resource/oss/endpoint/put-files" |
| | | }, |
| | | { |
| | | label: "备注", |
| | | prop: "remark", |
| | | prop: "remarks", |
| | | type: "textarea", |
| | | maxlength:200, |
| | | span: 24, |
| | | type:"textarea", |
| | | labelWidth: 145, |
| | | width: 110, |
| | | labelWidth: 110, |
| | | rules: [ |
| | | { |
| | | required: false, |
| | | message: "请输入备注", |
| | | trigger: "click", |
| | | trigger: ["blur","change"] |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | computed: { |
| | | ...mapState({ |
| | | userInfo: (state) => state.user.userInfo, |
| | | $farmId: state => state.user.$farmId, |
| | | }), |
| | | }, |
| | | methods: { |
| | | //计算当前时间 |
| | | getNowTime(){ |
| | | var date = new Date(); |
| | | //年 getFullYear():四位数字返回年份 |
| | | var year = date.getFullYear(); //getFullYear()代替getYear() |
| | | //月 getMonth():0 ~ 11 |
| | | var month = date.getMonth() + 1; |
| | | //日 getDate():(1 ~ 31) |
| | | var day = date.getDate(); |
| | | //时 getHours():(0 ~ 23) |
| | | var hour = date.getHours(); |
| | | //分 getMinutes(): (0 ~ 59) |
| | | var minute = date.getMinutes(); |
| | | //秒 getSeconds():(0 ~ 59) |
| | | var second = date.getSeconds(); |
| | | //赋值 |
| | | this.form['time'] = year + '-' |
| | | + this.addZero(month) + '-' |
| | | + this.addZero(day) + ' ' |
| | | + this.addZero(hour) + ':' |
| | | + this.addZero(minute); |
| | | watch: { |
| | | "form.type": { |
| | | handler(val) { |
| | | var stockIdcolumn = this.findObject(this.option.column, "stockId"); |
| | | var numColumn = this.findObject(this.option.column,"num") |
| | | var snumColumn = this.findObject(this.option.column,"snum") |
| | | if(typeof val =="undefined"){ |
| | | stockIdcolumn.display = false |
| | | numColumn.display =false |
| | | snumColumn.display = false |
| | | } |
| | | else if (val === "0" || val == 4 || val == 5 || val == 8 || val == 9) { |
| | | stockIdcolumn.display = true; |
| | | } else { |
| | | stockIdcolumn.display = false; |
| | | } |
| | | }, |
| | | immediate: true, |
| | | }, |
| | | //小于10的拼接上0字符串 |
| | | }, |
| | | methods: { |
| | | getDe(val) { |
| | | if (val.value!='') { |
| | | getDetail(val.value,this.$farmId).then(res => { |
| | | var amount1 = res.data.data.amount1; |
| | | this.form.num = amount1 |
| | | var numz = this.findObject(this.option.column, "num"); |
| | | var numzs = this.findObject(this.option.column, "snum"); |
| | | numz.display = true; |
| | | numzs.display = true; |
| | | }); |
| | | } |
| | | }, |
| | | //计算当前时间 |
| | | getNowTime() { |
| | | var date = new Date(); |
| | | //年 getFullYear():四位数字返回年份 |
| | | var year = date.getFullYear(); //getFullYear()代替getYear() |
| | | //月 getMonth():0 ~ 11 |
| | | var month = date.getMonth() + 1; |
| | | //日 getDate():(1 ~ 31) |
| | | var day = date.getDate(); |
| | | //时 getHours():(0 ~ 23) |
| | | var hour = date.getHours(); |
| | | //分 getMinutes(): (0 ~ 59) |
| | | var minute = date.getMinutes(); |
| | | //秒 getSeconds():(0 ~ 59) |
| | | var second = date.getSeconds(); |
| | | //赋值 |
| | | this.form['time'] = year + '-' |
| | | + this.addZero(month) + '-' |
| | | + this.addZero(day) + ' ' |
| | | + this.addZero(hour); |
| | | } |
| | | , |
| | | //小于10的拼接上0字符串 |
| | | addZero(s) { |
| | | return s < 10 ? ('0' + s) : s; |
| | | }, |
| | | //初始化 |
| | | init(data) { |
| | | this.form = { |
| | | farmPlantId:data.id, |
| | | strainId:data.strainId, |
| | | landId:data.landId, |
| | | weight:data.weight, |
| | | leaves:'0', |
| | | jobWay:data.jobWay, |
| | | operator:data.operator, |
| | | remark:'' |
| | | }; |
| | | } |
| | | , |
| | | //初始化 |
| | | init() { |
| | | var that = this; |
| | | this.visible = true; |
| | | if (this.$refs.form){ |
| | | this.$refs.form.resetForm() |
| | | } |
| | | this.form['operator'] = this.userInfo.user_id; |
| | | //计算当前时间 |
| | | this.getNowTime(); |
| | | this.visible = true; |
| | | var that = this; |
| | | //获取农地数据 |
| | | getLandList(this.userInfo.user_id).then((res) => { |
| | | getLandList(this.$farmId).then((res) => { |
| | | if (res.data.code == 200) { |
| | | var landIdcolumn = that.findObject(that.option.column, "landId"); |
| | | that.landList = res.data.data; |
| | | landIdcolumn.dicData = res.data.data; |
| | | } |
| | | }); |
| | | |
| | | //获取操作人 |
| | | const user = { |
| | | tenantId: this.userInfo.tenant_id, |
| | |
| | | operatorcolumn.dicData = res.data.data; |
| | | } |
| | | }); |
| | | //获取农产品数据 |
| | | getStrainList(0).then((res)=>{ |
| | | if(res.data.code==200){ |
| | | var strainId = that.findObject(that.option.column,"strainId"); |
| | | strainId.dicData = res.data.data; |
| | | } |
| | | }) |
| | | }, |
| | | // 表单提交 |
| | | submit(row,loading,done) { |
| | | var that = this; |
| | | row.time = row.time + ":00"; |
| | | save(row).then( |
| | | () => { |
| | | this.$refs.form.resetFields(); |
| | | that.visible = false; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | done(); |
| | | window.console.log(error); |
| | | //获取农资 |
| | | selectStockFa(this.$farmId).then((res) => { |
| | | if (res.data.code == 200) { |
| | | var stockIdcolumn = that.findObject(that.option.column, "stockId"); |
| | | stockIdcolumn.dicData = res.data.data; |
| | | } |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | }); |
| | | } |
| | | , |
| | | // 表单提交 |
| | | submit(row, done) { |
| | | var that = this; |
| | | row['tenantId'] = this.userInfo.tenant_id; |
| | | row['deptId'] = this.$farmId; |
| | | if (row.snum > row.num || row.snum <=0) { |
| | | this.$message.warning("使用数量小于等于0或大于库存数量"); |
| | | done(); |
| | | } |
| | | else { |
| | | save(row).then( |
| | | () => { |
| | | that.$refs.form.resetFields(); |
| | | that.visible = false; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | that.$emit("refreshOnLoad") |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | done(); |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | } |
| | | } |
| | | , |
| | | } |
| | | , |
| | | } |
| | | ; |
| | | </script> |