|
@@ -57,10 +57,12 @@
|
|
|
label="离场时间">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="jobStauts"
|
|
|
header-align="center"
|
|
|
align="center"
|
|
|
label="当前在岗">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.jobStatus? '是': '否'}}
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
fixed="right"
|
|
@@ -79,35 +81,37 @@
|
|
|
:visible.sync="visible"
|
|
|
@close="cancel">
|
|
|
<el-form :model="form" ref="form" @keyup.enter.native="formSubmit()" label-width="80px">
|
|
|
- <el-form-item label="小猪耳标">
|
|
|
- <!-- <div class="block">
|
|
|
- <el-cascader
|
|
|
- v-model="form.pigletEartag"
|
|
|
- :options="options"
|
|
|
- :props="{ expandTrigger: 'hover' }"
|
|
|
- @change="handleChange"></el-cascader>
|
|
|
- </div> -->
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.pigletEartag" clearable></el-cascader>
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input v-model="form.name" placeholder="养殖员姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="职位">
|
|
|
+ <el-input v-model="form.position" placeholder="职位"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="当前在岗">
|
|
|
+ <el-select v-model="form.jobStatus" placeholder="请选择当前是否在岗">
|
|
|
+ <el-option
|
|
|
+ v-for="item in options"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="母亲耳标">
|
|
|
- <!-- <div class="block">
|
|
|
- <el-cascader
|
|
|
- v-model="form.sowEartag"
|
|
|
- :options="options"
|
|
|
- :props="{ expandTrigger: 'hover' }"
|
|
|
- @change="handleChange"></el-cascader>
|
|
|
- </div> -->
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.sowEartag" clearable></el-cascader>
|
|
|
+ <el-form-item label="入场时间">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.approachTime"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ placeholder="选择日期时间">
|
|
|
+ </el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="父亲耳标">
|
|
|
- <!-- <div class="block">
|
|
|
- <el-cascader
|
|
|
- v-model="form.boarEartag"
|
|
|
- :options="options"
|
|
|
- :props="{ expandTrigger: 'hover' }"
|
|
|
- @change="handleChange"></el-cascader>
|
|
|
- </div> -->
|
|
|
- <el-cascader :options="options" :show-all-levels="false" v-model="form.boarEartag" clearable></el-cascader>
|
|
|
+ <el-form-item label="离场时间">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.departureTime"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ placeholder="选择日期时间">
|
|
|
+ </el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
@@ -141,11 +145,22 @@ export default {
|
|
|
visible: false,
|
|
|
form: {
|
|
|
id: '',
|
|
|
- pigletEartag: [],
|
|
|
- sowEartag: [],
|
|
|
- boarEartag: []
|
|
|
+ name: '',
|
|
|
+ position: '',
|
|
|
+ approachTime: '',
|
|
|
+ departureTime: '',
|
|
|
+ jobStatus: ''
|
|
|
},
|
|
|
- options: [],
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ value: true,
|
|
|
+ label: '是'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: false,
|
|
|
+ label: '否'
|
|
|
+ }
|
|
|
+ ],
|
|
|
pigs: []
|
|
|
}
|
|
|
},
|
|
@@ -153,22 +168,35 @@ export default {
|
|
|
this.getDataList()
|
|
|
},
|
|
|
mounted () {
|
|
|
- this.getCascader()
|
|
|
+ // this.getCascader()
|
|
|
},
|
|
|
methods: {
|
|
|
// 获取数据列表
|
|
|
getDataList () {
|
|
|
this.dataListLoading = true
|
|
|
this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/list'),
|
|
|
- method: 'post'
|
|
|
+ url: this.$http.adornUrl('/management/employee/list'),
|
|
|
+ method: 'post',
|
|
|
+ params: this.$http.adornParams({
|
|
|
+ page: 1,
|
|
|
+ limit: 10,
|
|
|
+ keywords: this.dataForm.key
|
|
|
+ })
|
|
|
}).then(({ data }) => {
|
|
|
+ console.log(data);
|
|
|
if (data && data.code === 0) {
|
|
|
this.dataList = data.page.list
|
|
|
this.totalPage = data.page.totalCount
|
|
|
} else {
|
|
|
this.dataList = []
|
|
|
this.totalPage = 0
|
|
|
+ this.$confirm(`查询养殖员信息失败`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ return
|
|
|
+ }).catch(() => {})
|
|
|
}
|
|
|
this.dataListLoading = false
|
|
|
})
|
|
@@ -189,131 +217,19 @@ export default {
|
|
|
// 显示谱系新增 or 修改面板
|
|
|
this.visible = true
|
|
|
if (row) {
|
|
|
- this.form.id = row.id
|
|
|
- // 获取小猪耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.pigletEartag) {
|
|
|
- this.form.pigletEartag = item.cascader
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- // 获取母亲耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.sowEartag) {
|
|
|
- this.form.sowEartag = item.cascader
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- // 获取父亲耳标
|
|
|
- for (let item of this.pigs) {
|
|
|
- if (item.value === row.boarEartag) {
|
|
|
- this.form.boarEartag = item.cascader
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
+ this.form = row
|
|
|
}
|
|
|
},
|
|
|
- // 获取级联选择器
|
|
|
- getCascader () {
|
|
|
- // 获取所有年猪信息
|
|
|
- this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigbase/list'),
|
|
|
- method: 'post'
|
|
|
- }).then(async ({ data }) => {
|
|
|
- // 获取所有牧场信息
|
|
|
- let pastureResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/pasture/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let pastures = []
|
|
|
- pastureResult.data.page.list.forEach(pasture => {
|
|
|
- let item = {
|
|
|
- label: pasture.name,
|
|
|
- value: pasture.id,
|
|
|
- children: []
|
|
|
- }
|
|
|
- pastures.push(item)
|
|
|
- });
|
|
|
- // 获取所有猪舍信息
|
|
|
- let pigstyResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/pigsty/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let pigstys = []
|
|
|
- pigstyResult.data.page.list.forEach(pigsty => {
|
|
|
- let item = {
|
|
|
- label: pigsty.number,
|
|
|
- value: pigsty.id,
|
|
|
- pastureId: pigsty.pastureId,
|
|
|
- children: []
|
|
|
- }
|
|
|
- pigstys.push(item)
|
|
|
- });
|
|
|
- // 获取所有单元信息
|
|
|
- let unitResult = await this.$http({
|
|
|
- url: this.$http.adornUrl('/management/unit/list'),
|
|
|
- method: 'post'
|
|
|
- })
|
|
|
- let units = []
|
|
|
- unitResult.data.page.list.forEach(unit => {
|
|
|
- let item = {
|
|
|
- label: unit.number,
|
|
|
- value: unit.id,
|
|
|
- pigstyId: unit.pigstyId,
|
|
|
- pastureId: unit.pastureId,
|
|
|
- children: []
|
|
|
- }
|
|
|
- units.push(item)
|
|
|
- });
|
|
|
- if (data && data.code === 0) {
|
|
|
- let pigs = data.page.list
|
|
|
- // 将所有猪放进单元中
|
|
|
- pigs.forEach(pig => {
|
|
|
- for (let item of units) {
|
|
|
- if (pig.unitId === item.value) {
|
|
|
- let p = {
|
|
|
- label: pig.eartag,
|
|
|
- value: pig.eartag,
|
|
|
- cascader: [item.pastureId, item.pigstyId, item.value, pig.eartag]
|
|
|
- }
|
|
|
- item.children.push(p)
|
|
|
- this.pigs.push(p)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- // 将所有单元放进猪舍里面
|
|
|
- units.forEach(unit => {
|
|
|
- for (let item of pigstys) {
|
|
|
- if (unit.pigstyId === item.value) {
|
|
|
- item.children.push(unit)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- // 将所有猪舍放进牧场里
|
|
|
- pigstys.forEach(pigsty => {
|
|
|
- for (let item of pastures) {
|
|
|
- if (pigsty.pastureId === item.value) {
|
|
|
- item.children.push(pigsty)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- this.options = pastures
|
|
|
- })
|
|
|
- },
|
|
|
- // 选择n个牧场
|
|
|
+ // 选择n个养殖员
|
|
|
selectionChangeHandle (val) {
|
|
|
this.selectionDataList = []
|
|
|
val.forEach(item => {
|
|
|
this.selectionDataList.push(item.id)
|
|
|
});
|
|
|
},
|
|
|
- // 删除n个牧场
|
|
|
+ // 删除n个养殖员
|
|
|
deleteHandle (id) {
|
|
|
- this.$confirm(`确定删除小猪谱系信息?`, '提示', {
|
|
|
+ this.$confirm(`确定删除养殖员信息?`, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
@@ -326,18 +242,18 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/delete'),
|
|
|
+ url: this.$http.adornUrl('/management/employee/delete'),
|
|
|
method: 'post',
|
|
|
data: this.$http.adornData(this.selectionDataList, false)
|
|
|
}).then(result => {
|
|
|
if (result.data.code === 0) {
|
|
|
this.$message({
|
|
|
- message: '成功删除小猪谱系信息',
|
|
|
+ message: '成功删除养殖员信息',
|
|
|
type: 'success',
|
|
|
duration: 1000
|
|
|
})
|
|
|
} else {
|
|
|
- this.$message.error('删除小猪谱系信息失败');
|
|
|
+ this.$message.error('删除养殖员信息失败');
|
|
|
}
|
|
|
this.resetForm()
|
|
|
this.selectionDataList = []
|
|
@@ -345,42 +261,35 @@ export default {
|
|
|
}).catch(() => {})
|
|
|
},
|
|
|
formSubmit () {
|
|
|
- if (this.form.pigletEartag[3] === this.form.sowEartag[3] || this.form.pigletEartag[3] === this.form.boarEartag[3] || this.form.sowEartag[3] === this.form.boarEartag[3]) {
|
|
|
- // 请勿选择相同猪
|
|
|
- this.$confirm(`请勿选择相同猪`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- return
|
|
|
- }).catch(() => {})
|
|
|
- return
|
|
|
- }
|
|
|
- // 正常操作
|
|
|
if (this.form.id) {
|
|
|
// 修改
|
|
|
if (this.confirmInput()) {
|
|
|
+ // 检查入场时间、立场时间、当前在岗
|
|
|
+ if (!this.confirmJobStatus()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
// 进行修改操作
|
|
|
this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/update'),
|
|
|
+ url: this.$http.adornUrl('/management/employee/update'),
|
|
|
method: 'post',
|
|
|
data: this.$http.adornData({
|
|
|
id: this.form.id,
|
|
|
- pigletEartag: this.form.pigletEartag[3],
|
|
|
- sowEartag: this.form.sowEartag[3],
|
|
|
- boarEartag: this.form.boarEartag[3]
|
|
|
+ position: this.form.position,
|
|
|
+ approachTime: this.form.approachTime,
|
|
|
+ departureTime: this.form.departureTime,
|
|
|
+ jobStatus: this.form.jobStatus
|
|
|
})
|
|
|
}).then(result => {
|
|
|
if (result.data.code === 0) {
|
|
|
this.resetForm();
|
|
|
this.visible = false;
|
|
|
this.$message({
|
|
|
- message: '成功修改小猪谱系信息',
|
|
|
+ message: '成功修改养殖员信息',
|
|
|
type: 'success',
|
|
|
duration: 1000
|
|
|
})
|
|
|
} else {
|
|
|
- this.$message.error('修改小猪谱系信息失败');
|
|
|
+ this.$message.error('修改养殖员信息失败');
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
@@ -396,26 +305,32 @@ export default {
|
|
|
} else {
|
|
|
// 新增
|
|
|
if (this.confirmInput(1)) {
|
|
|
+ // 检查入场时间、立场时间、当前在岗
|
|
|
+ if (!this.confirmJobStatus()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
// 进行新增操作
|
|
|
this.$http({
|
|
|
- url: this.$http.adornUrl('/management/yearpigpedigree/save'),
|
|
|
+ url: this.$http.adornUrl('/management/employee/save'),
|
|
|
method: 'post',
|
|
|
data: this.$http.adornData({
|
|
|
- pigletEartag: this.form.pigletEartag[3],
|
|
|
- sowEartag: this.form.sowEartag[3],
|
|
|
- boarEartag: this.form.boarEartag[3]
|
|
|
+ name: this.form.name,
|
|
|
+ position: this.form.position,
|
|
|
+ approachTime: this.form.approachTime,
|
|
|
+ departureTime: this.form.departureTime,
|
|
|
+ jobStatus: this.form.jobStatus
|
|
|
})
|
|
|
}).then(result => {
|
|
|
if (result.data.code === 0) {
|
|
|
this.resetForm();
|
|
|
this.visible = false;
|
|
|
this.$message({
|
|
|
- message: '成功添加小猪谱系信息',
|
|
|
+ message: '成功添加养殖员信息',
|
|
|
type: 'success',
|
|
|
duration: 1000
|
|
|
})
|
|
|
} else {
|
|
|
- this.$message.error('添加小猪谱系信息失败');
|
|
|
+ this.$message.error('添加养殖员信息失败');
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
@@ -432,8 +347,6 @@ export default {
|
|
|
},
|
|
|
// 判断新增/修改时是否输入完整
|
|
|
confirmInput (val) {
|
|
|
- console.log('判断是否输入完整');
|
|
|
- console.log(val);
|
|
|
val && (delete this.form.id, delete this.form.deleted, delete this.form.gmtCreate, delete this.form.gmtModified)
|
|
|
for (let i in this.form) {
|
|
|
if (!this.form[i].toString()) {
|
|
@@ -445,15 +358,41 @@ export default {
|
|
|
// 清空form
|
|
|
resetForm () {
|
|
|
for (let i in this.form) {
|
|
|
- this.form[i] = []
|
|
|
+ this.form[i] = ''
|
|
|
}
|
|
|
- this.form.id = ''
|
|
|
this.getDataList()
|
|
|
},
|
|
|
// 取消
|
|
|
cancel () {
|
|
|
this.visible = false
|
|
|
this.resetForm()
|
|
|
+ },
|
|
|
+ // 判断当前在岗是否正确
|
|
|
+ getJobStatus () {
|
|
|
+ let start = new Date(this.form.approachTime)
|
|
|
+ let end = new Date(this.form.departureTime)
|
|
|
+ let now = new Date()
|
|
|
+ if (start <= now && now <= end) {
|
|
|
+ return 1
|
|
|
+ } else if (start < end) {
|
|
|
+ return 2
|
|
|
+ }
|
|
|
+ return 0
|
|
|
+ },
|
|
|
+ // 判断当前在岗与入场时间、离场时间是否有冲突
|
|
|
+ confirmJobStatus () {
|
|
|
+ if ((this.getJobStatus() === 1 && this.form.jobStatus) || (this.getJobStatus() === 2 && !this.form.jobStatus)) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ this.$confirm(`请检查当前在岗、入场时间与离场时间`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ // return false
|
|
|
+ console.log('新增养殖员有误');
|
|
|
+ }).catch(() => {})
|
|
|
+ return false
|
|
|
}
|
|
|
}
|
|
|
}
|