|
@@ -8,10 +8,11 @@
|
|
<el-tab-pane label="图表">
|
|
<el-tab-pane label="图表">
|
|
<el-divider>标准配置</el-divider>
|
|
<el-divider>标准配置</el-divider>
|
|
<el-row :gutter="24" type="flex" style="flex-wrap: wrap; flex-direction: row">
|
|
<el-row :gutter="24" type="flex" style="flex-wrap: wrap; flex-direction: row">
|
|
- <el-col :span="8" v-for="(item, index) in baseDevice" :key="item.id">
|
|
|
|
|
|
+ <el-col :span="12" v-for="(item, index) in baseDevice" :key="item.id">
|
|
<el-card shadow="always">
|
|
<el-card shadow="always">
|
|
<div slot="header" class="clearfix">
|
|
<div slot="header" class="clearfix">
|
|
<el-link @click="() => { $router.push({ path: `/pj/pj-goods-detail/${item.good_id}` }) }">{{ item.name }}</el-link>
|
|
<el-link @click="() => { $router.push({ path: `/pj/pj-goods-detail/${item.good_id}` }) }">{{ item.name }}</el-link>
|
|
|
|
+ <el-button v-if="boolFounder" size="mini" @click="changeEdit(item)">修改</el-button>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
<div class="param-item">
|
|
<div class="param-item">
|
|
@@ -28,83 +29,134 @@
|
|
<div>价格:{{item.price}}</div>
|
|
<div>价格:{{item.price}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div>{{ item.sales_remark }}</div>
|
|
|
|
- <template v-if="boolFounder || permissions.filter(p => p === 'pjTech' || p === 'pjOrderItemsList').length > 0">
|
|
|
|
- <el-divider>技术:
|
|
|
|
- <el-button v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0" type="text" icon="el-icon-edit-outline" @click="handleTechSave(item)">保存</el-button>
|
|
|
|
- </el-divider>
|
|
|
|
- <div class="tech_panel" v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0">
|
|
|
|
- <div>填写人:{{item.tech_name}}</div>
|
|
|
|
- <div>硬件版本:<el-input v-model="item.hard_ver" size="small"></el-input></div>
|
|
|
|
- <div>软件版本:<el-input v-model="item.soft_ver" size="small"></el-input></div>
|
|
|
|
- <div>备注:<el-input type="textarea" rows="3" placeholder="备注,最大300字" maxlength="300" show-word-limit v-model="item.tech_remark"></el-input></div>
|
|
|
|
- </div>
|
|
|
|
- <div class="tech_panel" v-else>
|
|
|
|
- <div>填写人:{{item.tech_name}}</div>
|
|
|
|
- <div>硬件版本:{{ item.hard_ver }}</div>
|
|
|
|
- <div>软件版本:{{ item.soft_ver }}</div>
|
|
|
|
- <div>备注:{{ item.tech_remark }}</div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="boolFounder || permissions.filter(p => p === 'pjOrderItemsList').length > 0">
|
|
|
|
- <el-divider>生产:
|
|
|
|
- <el-button type="text" icon="el-icon-edit-outline" @click="handleProduceSave(item)">保存</el-button>
|
|
|
|
- </el-divider>
|
|
|
|
- <div class="tech_panel">
|
|
|
|
- <div>填写人:{{item.produce_name}}</div>
|
|
|
|
- <div>填写时间:<span style="font-size: 11px">{{ item.produce_time }}</span></div>
|
|
|
|
- <div @click="clickImg(index)">
|
|
|
|
- <el-upload
|
|
|
|
- :action="`${MixinUploadApi}?scene=pjorders`"
|
|
|
|
- list-type="picture-card"
|
|
|
|
- :on-preview="handlePictureCardPreview"
|
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
|
- :on-success="handleImageSuccess"
|
|
|
|
- :limit="1"
|
|
|
|
- >
|
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
|
- </el-upload>
|
|
|
|
- </div>
|
|
|
|
- <div>生产状态:
|
|
|
|
- <el-select placeholder="请选择" v-model="item.produce_status">
|
|
|
|
- <el-option value="采购原料中"></el-option>
|
|
|
|
- <el-option value="生产中"></el-option>
|
|
|
|
- <el-option value="完成"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div>完成量:<el-input v-model="item.produced_qty">
|
|
|
|
- <template slot="append">共{{item.qty}}</template>
|
|
|
|
- </el-input></div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <template v-else>
|
|
|
|
- <el-divider>生产情况</el-divider>
|
|
|
|
- <div>填写人:{{item.produce_name}}</div>
|
|
|
|
- <div>填写时间:<span style="font-size: 11px">{{ item.produce_time }}</span></div>
|
|
|
|
- <el-upload
|
|
|
|
- :action="`${MixinUploadApi}?scene=pjorders`"
|
|
|
|
- list-type="picture-card"
|
|
|
|
- :disabled = "true"
|
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
|
- :limit="1"
|
|
|
|
- >
|
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
|
- </el-upload>
|
|
|
|
- <div>生产状态:{{item.produce_status}}</div>
|
|
|
|
- <div>完成量:<el-input v-model="item.produced_qty" :disabled="true">
|
|
|
|
- <template slot="append">共{{item.qty}}</template>
|
|
|
|
- </el-input></div>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <div class="myFont">{{ item.sales_remark }}</div>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <template v-if="boolFounder || permissions.filter(p => p === 'pjTech' || p === 'pjOrderItemsList').length > 0">
|
|
|
|
+ <el-divider>技术:
|
|
|
|
+ <el-button type="text" icon="el-icon-edit-outline" @click="handleTechSave(item)">保存</el-button>
|
|
|
|
+ </el-divider>
|
|
|
|
+ <div class="tech_panel">
|
|
|
|
+ <div class="myFont">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="myFont">填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.tech_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>硬件版本:<el-input v-model="item.hard_ver" size="small"></el-input></div>
|
|
|
|
+ <div>软件版本:<el-input v-model="item.soft_ver" size="small"></el-input></div>
|
|
|
|
+ <div>备注:<el-input type="textarea" rows="3" placeholder="备注,最大150字" maxlength="150" show-word-limit v-model="item.tech_remark"></el-input></div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-divider>技术:</el-divider>
|
|
|
|
+ <div class="tech_panel myFont">
|
|
|
|
+ <div class="">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.tech_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>硬件版本:<el-tooltip class="item" effect="dark" :content="item.hard_ver" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.hard_ver}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>软件版本:<el-tooltip class="item" effect="dark" :content="item.soft_ver" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.soft_ver}}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ <div>备注:<el-tooltip class="item" effect="dark" :content="item.tech_remark" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_remark}}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <template v-if="boolFounder || permissions.filter(p => p === 'pjOrderItemsList').length > 0">
|
|
|
|
+ <el-divider>生产:
|
|
|
|
+ <el-button type="text" icon="el-icon-edit-outline" @click="handleProduceSave(item)">保存</el-button>
|
|
|
|
+ </el-divider>
|
|
|
|
+ <div class="tech_panel">
|
|
|
|
+ <div class="myFont">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.produce_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="myFont">填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produce_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>已产量:<el-input v-model="item.produced_qty"><template slot="append">共{{item.qty}}</template></el-input></div>
|
|
|
|
+ <div>发货量:<el-input v-model="item.shipped_qty" /></div>
|
|
|
|
+ <div>备注:
|
|
|
|
+ <el-input type="textarea" rows="3" placeholder="备注,最大150字" maxlength="150" show-word-limit v-model="item.produced_remark"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div>生产状态:
|
|
|
|
+ <el-select placeholder="请选择" slot="prepend" v-model="item.produce_status">
|
|
|
|
+ <el-option value="采购原料中"></el-option>
|
|
|
|
+ <el-option value="生产中"></el-option>
|
|
|
|
+ <el-option value="完成"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <div @click="clickImg(index)">
|
|
|
|
+ <el-upload :action="`${MixinUploadApi}?scene=pjorders`" :file-list="getImg(item.name, item.produce_img)" :on-preview="handlePictureCardPreview" :before-upload="beforeAvatarUpload"
|
|
|
|
+ :on-success="handleImageSuccess" :on-remove="handleRemove" :on-exceed="handleExceed" :limit="1">
|
|
|
|
+ <el-button v-if="!item.produce_img" size="small" type="primary">点击上传</el-button>
|
|
|
|
+ </el-upload>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-divider>生产情况</el-divider>
|
|
|
|
+ <div class="tech_panel myFont">
|
|
|
|
+ <div>填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.produce_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produce_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>已产量:<el-tooltip class="item" effect="dark" :content="item.produced_qty" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produced_qty }}</span>
|
|
|
|
+ </el-tooltip>件</div>
|
|
|
|
+ <div>发货量:<el-tooltip class="item" effect="dark" :content="item.shipped_qty" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.shipped_qty }}</span>
|
|
|
|
+ </el-tooltip>件</div>
|
|
|
|
+ <div>备注:<el-tooltip class="item" effect="dark" :content="item.produced_remark" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produced_remark }}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ <div>生产状态:<span style="font-size: 11px">{{ item.produce_status }}</span></div>
|
|
|
|
+ <div @click="clickImg(index)">
|
|
|
|
+ <el-upload :action="`${MixinUploadApi}?scene=pjorders`" :file-list="getImg(item.name, item.produce_img)" :on-preview="handlePictureCardPreview" :before-upload="beforeAvatarUpload"
|
|
|
|
+ :on-success="handleImageSuccess" :on-remove="handleRemove" :on-exceed="handleExceed" disabled :limit="1">
|
|
|
|
+ </el-upload>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-card>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<el-divider>其它选配</el-divider>
|
|
<el-divider>其它选配</el-divider>
|
|
<el-row :gutter="24" type="flex" style="flex-wrap: wrap; flex-direction: row">
|
|
<el-row :gutter="24" type="flex" style="flex-wrap: wrap; flex-direction: row">
|
|
- <el-col :span="8" v-for="item in addonDevice" :key="item.id">
|
|
|
|
|
|
+ <el-col :span="12" v-for="item in addonDevice" :key="item.id">
|
|
<el-card shadow="always">
|
|
<el-card shadow="always">
|
|
<div slot="header" class="clearfix">
|
|
<div slot="header" class="clearfix">
|
|
<el-link @click="() => { $router.push({ path: `/pj/pj-goods-detail/${item.good_id}` }) }">{{ item.name }}</el-link>
|
|
<el-link @click="() => { $router.push({ path: `/pj/pj-goods-detail/${item.good_id}` }) }">{{ item.name }}</el-link>
|
|
|
|
+ <el-button v-if="boolFounder" size="mini" @click="changeEdit(item)">修改</el-button>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
<div class="param-item">
|
|
<div class="param-item">
|
|
@@ -121,36 +173,123 @@
|
|
<div>价格:{{item.price}}</div>
|
|
<div>价格:{{item.price}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div>{{ item.sales_remark }}</div>
|
|
|
|
- <template v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0">
|
|
|
|
- <el-divider>技术:
|
|
|
|
- <el-button type="text" icon="el-icon-edit-outline" @click="handleTechSave(item)">保存</el-button>
|
|
|
|
- </el-divider>
|
|
|
|
- <div class="tech_panel">
|
|
|
|
- <div>填写人:{{item.tech_name}}</div>
|
|
|
|
- <div>硬件版本:<el-input v-model="item.hard_ver" size="small"></el-input></div>
|
|
|
|
- <div>软件版本:<el-input v-model="item.soft_ver" size="small"></el-input></div>
|
|
|
|
- <div>备注:<el-input type="textarea" rows="3" placeholder="备注,最大300字" maxlength="300" show-word-limit v-model="item.tech_remark"></el-input></div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <template v-if="boolFounder || permissions.filter(p => p === 'pjOrderItemsList').length > 0">
|
|
|
|
- <el-divider>生产:
|
|
|
|
- <el-button type="text" icon="el-icon-edit-outline" @click="handleProduceSave(item)">保存</el-button>
|
|
|
|
- </el-divider>
|
|
|
|
- <div class="tech_panel">
|
|
|
|
- <div>填写人:{{item.produce_name}}</div>
|
|
|
|
- <div>生产状态:
|
|
|
|
- <el-select placeholder="请选择" v-model="item.produce_status">
|
|
|
|
- <el-option value="采购原料中"></el-option>
|
|
|
|
- <el-option value="生产中"></el-option>
|
|
|
|
- <el-option value="完成"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div>完成量:<el-input v-model="item.produced_qty">
|
|
|
|
- <template slot="append">共{{item.qty}}</template>
|
|
|
|
- </el-input></div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <div class="myFont">{{ item.sales_remark }}</div>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <template v-if="boolFounder || permissions.filter(p => p === 'pjTech' || p === 'pjOrderItemsList').length > 0">
|
|
|
|
+ <el-divider>技术:
|
|
|
|
+ <el-button type="text" icon="el-icon-edit-outline" @click="handleTechSave(item)">保存</el-button>
|
|
|
|
+ </el-divider>
|
|
|
|
+ <div class="tech_panel">
|
|
|
|
+ <div class="myFont">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="myFont">填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.tech_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>硬件版本:<el-input v-model="item.hard_ver" size="small"></el-input></div>
|
|
|
|
+ <div>软件版本:<el-input v-model="item.soft_ver" size="small"></el-input></div>
|
|
|
|
+ <div>备注:<el-input type="textarea" rows="3" placeholder="备注,最大150字" maxlength="150" show-word-limit v-model="item.tech_remark"></el-input></div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-divider>技术:</el-divider>
|
|
|
|
+ <div class="tech_panel myFont">
|
|
|
|
+ <div class="">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.tech_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.tech_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>硬件版本:<el-tooltip class="item" effect="dark" :content="item.hard_ver" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.hard_ver}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>软件版本:<el-tooltip class="item" effect="dark" :content="item.soft_ver" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.soft_ver}}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ <div>备注:<el-tooltip class="item" effect="dark" :content="item.tech_remark" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.tech_remark}}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <template v-if="boolFounder || permissions.filter(p => p === 'pjOrderItemsList').length > 0">
|
|
|
|
+ <el-divider>生产:
|
|
|
|
+ <el-button type="text" icon="el-icon-edit-outline" @click="handleProduceSave(item)">保存</el-button>
|
|
|
|
+ </el-divider>
|
|
|
|
+ <div class="tech_panel">
|
|
|
|
+ <div class="myFont">填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.produce_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="myFont">填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produce_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>已产量:<el-input v-model="item.produced_qty"><template slot="append">共{{item.qty}}</template></el-input></div>
|
|
|
|
+ <div>发货量:<el-input v-model="item.shipped_qty" /></div>
|
|
|
|
+ <div>备注:
|
|
|
|
+ <el-input type="textarea" rows="3" placeholder="备注,最大150字" maxlength="150" show-word-limit v-model="item.produced_remark"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <div>生产状态:
|
|
|
|
+ <el-select placeholder="请选择" slot="prepend" v-model="item.produce_status">
|
|
|
|
+ <el-option value="采购原料中"></el-option>
|
|
|
|
+ <el-option value="生产中"></el-option>
|
|
|
|
+ <el-option value="完成"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
|
|
+ <div @click="clickImg(index)">
|
|
|
|
+ <el-upload :action="`${MixinUploadApi}?scene=pjorders`" :file-list="getImg(item.name, item.produce_img)" :on-preview="handlePictureCardPreview" :before-upload="beforeAvatarUpload"
|
|
|
|
+ :on-success="handleImageSuccess" :on-remove="handleRemove" :on-exceed="handleExceed" :limit="1">
|
|
|
|
+ <el-button v-if="!item.produce_img" size="small" type="primary">点击上传</el-button>
|
|
|
|
+ </el-upload>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-divider>生产情况</el-divider>
|
|
|
|
+ <div class="tech_panel myFont">
|
|
|
|
+ <div>填写人:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_name" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{item.produce_name}}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>填写时间:
|
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.produce_time" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produce_time }}</span>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ <div>已产量:<el-tooltip class="item" effect="dark" :content="item.produced_qty" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produced_qty }}</span>
|
|
|
|
+ </el-tooltip>件</div>
|
|
|
|
+ <div>发货量:<el-tooltip class="item" effect="dark" :content="item.shipped_qty" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.shipped_qty }}</span>
|
|
|
|
+ </el-tooltip>件</div>
|
|
|
|
+ <div>备注:<el-tooltip class="item" effect="dark" :content="item.produced_remark" placement="top">
|
|
|
|
+ <span style="font-size: 11px">{{ item.produced_remark }}</span>
|
|
|
|
+ </el-tooltip></div>
|
|
|
|
+ <div>生产状态:<span style="font-size: 11px">{{ item.produce_status }}</span></div>
|
|
|
|
+ <div @click="clickImg(index)">
|
|
|
|
+ <el-upload :action="`${MixinUploadApi}?scene=pjorders`" :file-list="getImg(item.name, item.produce_img)" :on-preview="handlePictureCardPreview" :before-upload="beforeAvatarUpload"
|
|
|
|
+ :on-success="handleImageSuccess" :on-remove="handleRemove" :on-exceed="handleExceed" disabled :limit="1">
|
|
|
|
+ </el-upload>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-card>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -165,19 +304,19 @@
|
|
<el-tag type="info" v-else>配件</el-tag>
|
|
<el-tag type="info" v-else>配件</el-tag>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="code" label="生产型号"></el-table-column>
|
|
|
|
- <el-table-column prop="no" label="生产编码"></el-table-column>
|
|
|
|
- <el-table-column prop="hard_ver" label="硬件版本"></el-table-column>
|
|
|
|
- <el-table-column prop="soft_ver" label="软件版本"></el-table-column>
|
|
|
|
|
|
+ <el-table-column prop="code" show-overflow-tooltip label="生产型号"></el-table-column>
|
|
|
|
+ <el-table-column prop="no" show-overflow-tooltip label="生产编码"></el-table-column>
|
|
|
|
+ <el-table-column prop="hard_ver" show-overflow-tooltip label="硬件版本"></el-table-column>
|
|
|
|
+ <el-table-column prop="soft_ver" show-overflow-tooltip label="软件版本"></el-table-column>
|
|
<el-table-column prop="qty" label="数量" width="100"></el-table-column>
|
|
<el-table-column prop="qty" label="数量" width="100"></el-table-column>
|
|
<el-table-column prop="produced_qty" label="已产数量" width="100"></el-table-column>
|
|
<el-table-column prop="produced_qty" label="已产数量" width="100"></el-table-column>
|
|
- <el-table-column prop="produced_qty" label="需产产数量" width="100">
|
|
|
|
|
|
+ <el-table-column prop="produced_qty" label="需产数量" width="100">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span>{{ scope.row.qty - scope.row.produced_qty}}</span>
|
|
<span>{{ scope.row.qty - scope.row.produced_qty}}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column prop="price" label="价格" width="100"></el-table-column>
|
|
<el-table-column prop="price" label="价格" width="100"></el-table-column>
|
|
- <el-table-column prop="sales_remark" label="销售备注"></el-table-column>
|
|
|
|
|
|
+ <el-table-column prop="sales_remark" show-overflow-tooltip label="销售备注"></el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<div style="margin-top: 20px">
|
|
<div style="margin-top: 20px">
|
|
<el-button type="primary" @click="outExcel">导出Excel</el-button>
|
|
<el-button type="primary" @click="outExcel">导出Excel</el-button>
|
|
@@ -187,6 +326,14 @@
|
|
<el-dialog :visible.sync="dialogImage">
|
|
<el-dialog :visible.sync="dialogImage">
|
|
<img width="100%" :src="dialogImageUrl" alt="">
|
|
<img width="100%" :src="dialogImageUrl" alt="">
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <el-drawer
|
|
|
|
+ title="设备"
|
|
|
|
+ :visible.sync="goodsSelectVisible"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ size="80%"
|
|
|
|
+ >
|
|
|
|
+ <goods-select :type="type" :type_base="type_base" @selected="goodsSelect"></goods-select>
|
|
|
|
+ </el-drawer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -194,10 +341,12 @@
|
|
import * as API_orderItems from '@/api/pjOrderItems.js'
|
|
import * as API_orderItems from '@/api/pjOrderItems.js'
|
|
import { Foundation } from '~/ui-utils'
|
|
import { Foundation } from '~/ui-utils'
|
|
import Storage from '../../utils/storage'
|
|
import Storage from '../../utils/storage'
|
|
-import { editModelAndStatus } from '../../api/pjOrderItems'
|
|
|
|
|
|
+import goodsSelect from '../goods/goodsSelect.vue'
|
|
|
|
+import { editModel } from '../../api/pjOrderItems'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'pjOrderItems',
|
|
name: 'pjOrderItems',
|
|
|
|
+ components: { goodsSelect },
|
|
props: {
|
|
props: {
|
|
orderNo: {
|
|
orderNo: {
|
|
type: String,
|
|
type: String,
|
|
@@ -211,7 +360,7 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
boolFounder: JSON.parse(Storage.getItem('admin_user')).founder === 1,
|
|
boolFounder: JSON.parse(Storage.getItem('admin_user')).founder === 1,
|
|
- permissions: {},
|
|
|
|
|
|
+ permissions: [],
|
|
keyId: '',
|
|
keyId: '',
|
|
params: {
|
|
params: {
|
|
page_no: 1,
|
|
page_no: 1,
|
|
@@ -224,7 +373,10 @@ export default {
|
|
addonDevice: [],
|
|
addonDevice: [],
|
|
dialogImage: false,
|
|
dialogImage: false,
|
|
dialogImageUrl: '',
|
|
dialogImageUrl: '',
|
|
- index: 0
|
|
|
|
|
|
+ changeId: null,
|
|
|
|
+ index: 0,
|
|
|
|
+ goodsSelectVisible: false,
|
|
|
|
+ type_base: true
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
@@ -258,6 +410,11 @@ export default {
|
|
} else {
|
|
} else {
|
|
item.tech_name = adminUser.realname
|
|
item.tech_name = adminUser.realname
|
|
}
|
|
}
|
|
|
|
+ if (item.tech_time) {
|
|
|
|
+ item.tech_time = item.tech_time + ',' + Foundation.unixToDate(Math.round(new Date() / 1000))
|
|
|
|
+ } else {
|
|
|
|
+ item.tech_time = Foundation.unixToDate(Math.round(new Date() / 1000))
|
|
|
|
+ }
|
|
API_orderItems.editModelAndStatus(item, 1).then(res => {
|
|
API_orderItems.editModelAndStatus(item, 1).then(res => {
|
|
this.$message.success('保存成功!')
|
|
this.$message.success('保存成功!')
|
|
})
|
|
})
|
|
@@ -323,8 +480,59 @@ export default {
|
|
this.$set(this.baseDevice[this.index], 'produce_img', response.url)
|
|
this.$set(this.baseDevice[this.index], 'produce_img', response.url)
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ handleRemove(e) {
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.$set(this.baseDevice[this.index], 'produce_img', null)
|
|
|
|
+ }, 400)
|
|
|
|
+ },
|
|
|
|
+ handleExceed(e) {
|
|
|
|
+ this.$message.error('最多只能上传一个文件!')
|
|
|
|
+ },
|
|
clickImg(index) {
|
|
clickImg(index) {
|
|
this.index = index
|
|
this.index = index
|
|
|
|
+ },
|
|
|
|
+ changeEdit(item) {
|
|
|
|
+ this.changeId = item.id
|
|
|
|
+ this.type_base = item.type_base
|
|
|
|
+ this.goodsSelectVisible = true
|
|
|
|
+ },
|
|
|
|
+ goodsSelect(list) {
|
|
|
|
+ if (list.length > 1) {
|
|
|
|
+ this.$message.error('只能选择一个产品!')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (this.listData.findIndex(p => p.good_id === list[0].id) > -1) {
|
|
|
|
+ this.$message.error('产品已存在!')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ const data = {
|
|
|
|
+ good_id: list[0].id,
|
|
|
|
+ name: list[0].name,
|
|
|
|
+ code: list[0].code,
|
|
|
|
+ no: list[0].no,
|
|
|
|
+ image: list[0].image,
|
|
|
|
+ id: this.changeId
|
|
|
|
+ }
|
|
|
|
+ API_orderItems.editModel(data).then(res => {
|
|
|
|
+ this.$message.success('保存成功!')
|
|
|
|
+ this.getData()
|
|
|
|
+ })
|
|
|
|
+ this.goodsSelectVisible = false
|
|
|
|
+ },
|
|
|
|
+ getImg(name, img) {
|
|
|
|
+ if (img) {
|
|
|
|
+ return [{ name: name + '备注图', url: img }]
|
|
|
|
+ } else {
|
|
|
|
+ return []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ formartLen(str) {
|
|
|
|
+ console.log('str===', str)
|
|
|
|
+ if (!str) {
|
|
|
|
+ return ''
|
|
|
|
+ } else {
|
|
|
|
+ return str.length > 20 ? str.substr(0, 20) + '...' : str
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -334,7 +542,7 @@ export default {
|
|
.param-item {
|
|
.param-item {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
- justify-content: space-between;
|
|
|
|
|
|
+ //justify-content: space-between;
|
|
padding: 3px;
|
|
padding: 3px;
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
|
|
|
@@ -361,4 +569,10 @@ export default {
|
|
height: 100px;
|
|
height: 100px;
|
|
display: block;
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
+.myFont {
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ text-overflow: ellipsis; //超出部分以省略号显示
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ width: 16em; //用px单位亦可行
|
|
|
|
+}
|
|
</style>
|
|
</style>
|