Commit 622df50c by lichengming

修改了项目进度显示

parent fd22911b
...@@ -266,6 +266,10 @@ export default { ...@@ -266,6 +266,10 @@ export default {
.then(res => res), .then(res => res),
aloneSampleDelete: data => aloneSampleDelete: data =>
http.delete('soil/v1/alone_sample/?ids=' + data).then(res => res), http.delete('soil/v1/alone_sample/?ids=' + data).then(res => res),
pageWarehouseLocationSample: data =>
http
.post('/v1/sample/page_warehouse_location_sample', data)
.then(res => res),
storageSampleSubmit: data => storageSampleSubmit: data =>
http http
.post('soil/v1/alone_sample/storage_sample_submit', data) .post('soil/v1/alone_sample/storage_sample_submit', data)
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</div> </div>
<div v-if="item.type === 'rect'" class="flow-start" style="position: absolute;right: -10px;bottom:-60px"> <div v-if="item.type === 'rect'" class="flow-start" style="position: absolute;right: -10px;bottom:-60px">
<PtArrow :isRote="true" :value="item.value"/> <PtArrow :isRote="true" :value="item.value"/>
<PtRect :name="item.name" :value="item.value" style="margin-top: 60px;"/> <PtRect :name="item.name" :num="item.num?item.num:''" :value="item.value" style="margin-top: 60px;"/>
</div> </div>
<!--最后的连接线--> <!--最后的连接线-->
<div style="position: absolute;left: 81px;top: 30px"> <div style="position: absolute;left: 81px;top: 30px">
......
<template> <template>
<div :class="classObj(value)" class="rect">{{name}}</div> <div :class="classObj(value)" class="rect">
<p :class="style(name)">{{name}}<br>{{num}}</p>
</div>
</template> </template>
<script> <script>
...@@ -12,7 +14,8 @@ export default { ...@@ -12,7 +14,8 @@ export default {
// 显示的内容 // 显示的内容
name: null, name: null,
// 节点变色的依据(存在的变色) // 节点变色的依据(存在的变色)
value: null value: null,
num: null
}, },
methods: { methods: {
// 颜色 // 颜色
...@@ -25,6 +28,13 @@ export default { ...@@ -25,6 +28,13 @@ export default {
default: default:
break break
} }
},
style(name) {
if (name === '自校版' && this.num !== '') {
return 'haveNum'
} else {
return 'noNum'
}
} }
} }
} }
...@@ -32,7 +42,6 @@ export default { ...@@ -32,7 +42,6 @@ export default {
<style scoped> <style scoped>
.rect { .rect {
padding: 10px;
border: 1px solid #999; border: 1px solid #999;
background: #999; background: #999;
color: #fff; color: #fff;
...@@ -40,7 +49,12 @@ export default { ...@@ -40,7 +49,12 @@ export default {
width: 80px; width: 80px;
text-align: center; text-align: center;
} }
.haveNum {
}
.noNum {
margin-top: 10px;
margin-bottom: 10px;
}
.blue-color { .blue-color {
border-color: #00a0e9; border-color: #00a0e9;
background-color: #00a0e9; background-color: #00a0e9;
......
...@@ -146,9 +146,6 @@ export default { ...@@ -146,9 +146,6 @@ export default {
} }
} }
}, },
mounted() {
this._page()
},
methods: { methods: {
// 操作按钮 // 操作按钮
_btnClick(msg, currentComponent) { _btnClick(msg, currentComponent) {
......
<template>
<div>
<!--内容-->
<div class="layout-content-padding">
<div class="layout-content-main">
<Row>
<Col span="24" class="margin-top-10">
<!--搜索表单-->
<Form id="search-form" :label-width="90" v-show="searchOpen" inline onsubmit="return false">
<label class="label-sign"></label>
<Form-item class="search-item" label="钻孔名称:">
<Input @on-enter="_formSearch" v-model="formObj.boreholeName" name="boreholeName" placeholder="请输入钻孔名称" clearable/>
</Form-item>
<Form-item class="search-item" label="库房号:">
<Input @on-enter="_formSearch" v-model="formObj.warehouse" name="warehouse" placeholder="请输入库房号" clearable/>
</Form-item>
<Form-item class="search-btn">
<Button @click="_formSearch" type="primary">搜索</Button>
</Form-item>
</Form>
</Col>
<!--操作-->
<Col span="24">
<btn-list :msg="btn" :open="searchOpen" :showSearchBtn="true" @on-result-change="_btnClick"
class="contHide"></btn-list>
</Col>
<!--表格 -->
<Col span="24">
<PTVXETable ref="pageTable" :tableHeight="tableHeight"
@on-result-change="_tableResultChange" :getPage="getPage" :iconMsg="iconMsg">
<vxe-table-column
:field="item.key"
:title="item.title"
:min-width="item.width?item.width:200"
:fixed="item.fixed?item.fixed:undefined"
v-for="item in pageColumns"
:key="item.key" sortable>
<template slot-scope="scope">
<div v-if="item.key==='status'">{{scope.row[item.key]===0?'现行':scope.row[item.key]===1?'即将实施':
scope.row[item.key]===2?'部分被代替':scope.row[item.key]===3?'被代替':scope.row[item.key]===4?'作废':''}}
</div>
<div v-else-if="item.key==='classify'">
{{scope.row[item.key]===0?'判定依据':scope.row[item.key]===1?'检测依据':scope.row[item.key]===2?'其他':''}}
</div>
<div v-else-if="item.key==='type'">
{{scope.row[item.key]===0?'待检':scope.row[item.key]===1?'备样':scope.row[item.key]===2?'备用': ''}}
</div>
<div v-else-if="item.date">{{scope.row[item.key]?$dateformat(scope.row[item.key],'yyyy-mm-dd'):''}}
</div>
<div v-else-if="item.key==='fileUrl'">
<span v-if="scope.row['fileUrl']" class="green-color"></span>
<span v-else class="red-color"></span>
</div>
<div v-else>{{scope.row[item.key]}}</div>
</template>
</vxe-table-column>
</PTVXETable>
</Col>
</Row>
</div>
</div>
<!--组件加载-->
<ViewSample ref="viewSample"></ViewSample>
<ViewDetail ref="viewDetail"></ViewDetail>
<Outstock ref="outStockModal" @on-result-change="_page"></Outstock>
<FileManage ref="FileManage" @on-result-change="_page"></FileManage>
<BatchModal ref="batchModal" @on-result-change="_page"></BatchModal>
<stockSampleEdit ref="editModal" @on-result-change="_page"></stockSampleEdit>
</div>
</template>
<script>
import { soilEntrust, soilSample } from '../../../api'
import ViewDetail from '../../soil-alone-sample/ViewDetail'
import Outstock from '../soil-alone-sample-outstock/Outstock'
import ViewSample from './ViewLocationEntrust'
import stockSampleEdit from './stockSampleEdit'
import BatchModal from './BatchModal'
export default {
components: {
stockSampleEdit,
ViewSample,
ViewDetail,
BatchModal,
Outstock
},
data() {
return {
currentComponent: '',
formObj: {
code: undefined,
name: undefined
},
btn: [
{
type: 'success',
id: '',
name: '提交'
},
{ type: 'success', id: '', name: '批量填写' }
],
// 表格
pageColumns: [
{ title: '钻孔名称', key: 'boreholeName' },
{ title: '项目负责人', key: 'projectLeader' },
{ title: '入库日期', key: 'instockTime', date: true },
{ title: '留存有效期', key: 'keepLimitTime', date: true },
{ title: '库房号', key: 'storehouse' },
{ title: '架位号', key: 'shelfCode' }
],
// 操作
iconMsg: [
{
type: 'md-create',
id: '',
name: '编辑',
componentName: 'StandardsManageEdit'
},
{
type: 'ios-list',
id: '',
name: '查看'
},
{
type: 'md-cloud',
id: '',
name: '附件'
},
{ type: 'md-remove-circle', id: '', name: '删除' }
],
searchOpen: false,
getPage: {},
// 选中的内容
selectIds: []
}
},
computed: {
// 表格的高度
tableHeight: function() {
if (this.searchOpen) {
return this.$tableHeight('search')
} else {
return this.$tableHeight('noSearch')
}
}
},
methods: {
// 操作按钮
_btnClick(msg, currentComponent) {
this.currentComponent = currentComponent
switch (msg) {
case '添加':
this.$nextTick(() => {
this._editModal(false)
})
break
case '提交':
this._outstock()
break
case '批量填写':
this._bathChange()
break
case '删除':
this._deleteSelected()
break
case '导入':
this.$nextTick(() => {
this._import()
})
break
case '导出':
// this._export()
break
// 收起搜索
case 'search':
this.searchOpen = !this.searchOpen
break
}
},
_outstock() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选择一条数据')
} else {
this.$Modal.confirm({
title: '提示',
content: '确定提交?',
onOk: () => {
this._submitToOutStock()
}
})
}
},
_submitToOutStock: async function() {
const result = await soilSample.storageSampleSubmit({
ids: this.selectIds.join(',')
})
if (result) {
this._page()
this.$Message.success('提交成功')
this.selectIds = []
}
},
_bathChange() {
if (this.selectIds.length === 0) {
this.$Message.warning('请至少选择一条数据')
} else {
this.$refs.batchModal._open(this.selectIds.join(','))
}
},
// 表格中操作
_iconClick(res, data, currentComponent) {
this.currentComponent = currentComponent
this.$nextTick(() => {
switch (res) {
case '编辑':
this._editModal(true, data.id)
break
case '查看试样':
this._viewSample(data.name)
break
case '查看':
this._viewModal(true, data.id)
break
case '附件':
this._upload(data.id)
break
case '删除':
this._deleteById(data.id)
break
}
})
},
_upload(id) {
// 上传文件
this.$refs.FileManage._open(id, 'aloneSampleId')
},
_viewModal(edit, id) {
if (edit) {
this.$refs.pageTable._showLoading()
// 编辑
this._getDetailById(id)
} else {
// 添加
this.$nextTick(() => {
this.$refs.refModal._open()
})
}
},
_getDetailById: async function(id) {
const result = await soilEntrust.aloneSampleGetById(id)
if (result) {
this.$refs.viewDetail._open(result)
this.$refs.pageTable._hideLoading()
} else {
this.$refs.pageTable._hideLoading()
}
},
_viewSample(data) {
this.$refs.viewSample._open(data)
},
_editModal(edit, id) {
if (edit) {
this.$refs.pageTable._showLoading()
// 编辑
this._getById(id)
} else {
// 添加
this.$nextTick(() => {
this.$refs.refModal._open()
})
}
},
_getById: async function(id) {
const result = await soilEntrust.aloneSampleGetById(id)
if (result) {
this.$refs.editModal._openEdit(result)
this.$refs.pageTable._hideLoading()
} else {
this.$refs.pageTable._hideLoading()
}
},
// 获取数据
_page: async function() {
this.selectIds = []
Object.assign(this.formObj, this.$refs.pageTable._searchParams())
const result = await soilSample.pageStorehouseSample(
this.$serializeForm(this.formObj)
)
if (result) {
this.$refs.pageTable._hideLoading()
this.getPage = result
}
},
// 查询
_formSearch() {
this.$refs.pageTable._pageChange(1)
},
// 删除一条记录
_deleteById(id) {
this._deleteByIds([id])
},
// 批量删除
_deleteSelected() {
if (this.selectIds.length === 0) {
this.$Message.warning('请选择一条或多条数据!')
} else {
this._deleteByIds(
this.selectIds,
'确定删除这 ' + this.selectIds.length + ' 条记录?'
)
}
},
_deleteByIds(ids, content) {
this.$Modal.confirm({
title: '提示',
loading: true,
content: content || '确定删除该记录?',
onOk: () => {
this._delOk(ids)
}
})
},
_delOk: async function(ids) {
const result = await soilSample.aloneSampleDelete(ids)
if (result) {
this._page()
this.$Modal.remove()
this.$Message.success('删除成功')
}
},
// 表格内容
_tableResultChange(msg, data) {
switch (msg) {
case 'page':
this._page()
break
case 'selectIds':
this.selectIds = data
break
case 'iconClick':
this._iconClick(data.name, data.rowData, data.componentName)
break
case 'changeSize':
this._page()
break
}
}
}
}
</script>
<template>
<div>
<div class="layout-content-padding">
<div class="layout-content-main">
<el-tabs v-model="activeName" @tab-click="_changeTabs">
<el-tab-pane label="待完成" name="wait"></el-tab-pane>
<el-tab-pane label="历史记录" name="his"></el-tab-pane>
</el-tabs>
<keep-alive>
<!-- eslint-disable-next-line vue/require-component-is -->
<component ref="refModal" :is="currentComponent"></component>
</keep-alive>
</div>
</div>
</div>
</template>
<script>
import MeterSendEntrust from './AddressManage'
import MeterSendEntrustHis from './AddressManageHis'
export default {
name: 'MeterSendEntrustIndex',
components: {
// eslint-disable-next-line vue/no-unused-components
MeterSendEntrust,
// eslint-disable-next-line vue/no-unused-components
MeterSendEntrustHis
},
data() {
return {
activeName: 'wait',
currentComponent: ''
}
},
mounted() {
this.activeName = 'wait'
this.currentComponent = 'MeterSendEntrust'
this.$nextTick(() => {
this.$refs.refModal._page()
})
},
methods: {
_changeTabs(tab, event) {
if (tab.name === 'wait') {
this.currentComponent = 'MeterSendEntrust'
this.$nextTick(() => {
this.$refs.refModal._page()
})
} else {
this.currentComponent = 'MeterSendEntrustHis'
this.$nextTick(() => {
this.$refs.refModal._page()
})
}
}
}
}
</script>
<style scoped>
</style>
...@@ -78,30 +78,30 @@ export default { ...@@ -78,30 +78,30 @@ export default {
start: [ start: [
{ name: '收样', key: 'receiveSample' }, { name: '收样', key: 'receiveSample' },
{ name: '任务评审', key: 'review' }, { name: '任务评审', key: 'review' },
{ name: '开土', key: 'key3' } { name: '开土', key: 'openSoil' }
], ],
branch: [ branch: [
[ [
{ name: '物性试验', key: 'key4' }, { name: '物性试验', key: 'wuxing' },
{ name: '完成率', key: 'key5', line: true }, { name: '完成率', key: 'wuxingEnd', line: true },
{ name: '自校版1', key: 'key6', type: 'rect' } { name: '自校版', key: 'wuxingZiJiaoCheck', type: 'rect' }
], ],
[ [
{ name: '力学试验', key: 'key7' }, { name: '力学试验', key: 'lixue' },
{ name: '完成率', key: 'key8', line: true }, { name: '完成率', key: 'lixueEnd', line: true },
{ name: '自校版2', key: 'key9', type: 'rect' } { name: '自校版', key: 'lixueZiJiaoCheck', type: 'rect' }
], ],
[ [
{ name: '高级试验', key: 'key10' }, { name: '高级试验', key: 'gaoji' },
{ name: '完成率', key: 'key11', line: true }, { name: '完成率', key: 'gaojiEnd', line: true },
{ name: '自校版1', key: 'key12', type: 'rect' } { name: '自校版', key: 'gaojiZiJiaoCheck', type: 'rect' }
] ]
], ],
end: [ end: [
{ name: '报告编制', key: 'key13' }, { name: '报告编制', key: 'reportMake' },
{ name: '报告审核', key: 'key14' }, { name: '报告审核', key: 'reportCheck' },
{ name: '报告批准', key: 'key15' }, { name: '报告批准', key: 'reportIssue' },
{ name: '报告签发', key: 'key16' } { name: '报告签发', key: 'reportEnd' }
] ]
}, },
// 构造数据源 // 构造数据源
...@@ -149,6 +149,33 @@ export default { ...@@ -149,6 +149,33 @@ export default {
for (let i = 0; i < allArray.length; i++) { for (let i = 0; i < allArray.length; i++) {
const key = allArray[i].key const key = allArray[i].key
this.$set(allArray[i], 'value', this.nodeObj[key]) this.$set(allArray[i], 'value', this.nodeObj[key])
switch (allArray[i].key) {
case 'wuxingEnd':
this.$set(allArray[i], 'per', this.nodeObj.wuxingEndRate)
break
case 'lixueEnd':
this.$set(allArray[i], 'per', this.nodeObj.lixueEndRate)
break
case 'gaojiEnd':
this.$set(allArray[i], 'per', this.nodeObj.gaojiEndRate)
break
case 'wuxingZiJiaoCheck':
this.$set(allArray[i], 'num', this.nodeObj.wuxingZiJiao)
break
}
// if (allArray[i].key === 'wuxingEnd') {
// this.$set(allArray[i], 'per', this.nodeObj.wuxingEndRate)
// } else if (allArray[i].key === 'lixueEnd') {
// this.$set(allArray[i], 'per', this.nodeObj.lixueEndRate)
// } else if (allArray[i].key === 'gaojiEnd') {
// this.$set(allArray[i], 'per', this.nodeObj.gaojiEndRate)
// } else if (allArray[i].key === 'wuxingZiJiao') {
// if (this.nodeObj.wuxingZiJiao) {
// this.list.branch[0][2].name = this.nodeObj.wuxingZiJiao
// } else {
// this.list.branch[0][2].name = '自校'
// }
// }
} }
}, },
// 上面连接线颜色 // 上面连接线颜色
......
...@@ -10,7 +10,7 @@ import ReceiveSampleIndex from '../pages/soil-alone-sample/EntrustIndex' ...@@ -10,7 +10,7 @@ import ReceiveSampleIndex from '../pages/soil-alone-sample/EntrustIndex'
import InstockIndex from '../pages/soil-alone-sample-instock/EntrustIndex' import InstockIndex from '../pages/soil-alone-sample-instock/EntrustIndex'
import OutstockIndex from '../pages/soil-alone-sample-manage/soil-alone-sample-outstock/EntrustIndex' import OutstockIndex from '../pages/soil-alone-sample-manage/soil-alone-sample-outstock/EntrustIndex'
import StorehousePlace from '../pages/soil-alone-sample-manage/storehouse-place-manage/AddressManage' import StorehousePlace from '../pages/soil-alone-sample-manage/storehouse-place-manage/AddressManage'
import StorehouseSample from '../pages/soil-alone-sample-manage/storehouse-sample-manage/AddressManage' import StorehouseSample from '../pages/soil-alone-sample-manage/storehouse-sample-manage/storehouseSampleIndex'
import ReviewEntrust from '../pages/meter-entrust/entrust-review/ReviewEntrust' import ReviewEntrust from '../pages/meter-entrust/entrust-review/ReviewEntrust'
import SampleReceiveIndex from '../pages/soil-sample-manage/sample-receive/SampleReceiveIndex' import SampleReceiveIndex from '../pages/soil-sample-manage/sample-receive/SampleReceiveIndex'
import AloneKeepIndex from '../pages/soil-sample-manage/sample-alone-keep/SampleReceiveIndex' import AloneKeepIndex from '../pages/soil-sample-manage/sample-alone-keep/SampleReceiveIndex'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment