|
|
@@ -0,0 +1,277 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <basicLayout
|
|
|
+ ref="basicLayout"
|
|
|
+ tableName="productManageTable"
|
|
|
+ idName="itemid"
|
|
|
+ ownertable="plm_item"
|
|
|
+ :apiId="{query:20220923140602,del:''}"
|
|
|
+ :options="options"
|
|
|
+ :specialKey="[{key:'itemclass',value:null},{key:'tradefield',value:null},{key:'brand',value:null}]"
|
|
|
+ @checkboxCallBack="checkboxCallBack"
|
|
|
+ :autoQuery="false"
|
|
|
+ :isExport="false"
|
|
|
+ >
|
|
|
+ <template #titleLight>
|
|
|
+ <batchDeletion v-if="tool.checkAuth($route.name,'batchDeletion')" ref="batchDeletion" :ownerids="selectData" :sys_object="application" ownertable="item" @delSuccess="queryData"></batchDeletion>
|
|
|
+ <batchRecovery v-if="tool.checkAuth($route.name,'batchRecovery')" ref="batchRecovery" :ownerids="selectData" :sys_object="application" ownertable="item" @recoverySuccess="queryData"></batchRecovery>
|
|
|
+ </template>
|
|
|
+ <template #custom>
|
|
|
+ <div class="mt-10">
|
|
|
+ <p class="search__label">{{ $t('应用') }}:</p>
|
|
|
+ <el-select
|
|
|
+ class="inline-24"
|
|
|
+ size="small"
|
|
|
+ v-model="application"
|
|
|
+ :placeholder="$t('请选择范围')"
|
|
|
+ @change="applicationChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in applicationList"
|
|
|
+ :key="item.index"
|
|
|
+ :label="$t(item.label)"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <label class="search__label" >{{$t(`是否上架`)}}:</label>
|
|
|
+ <el-select class="inline-24" v-model="selectParam.isonsale" :placeholder="$t(`请选择是否上架`)" @change="selectChange" size="small" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in isOnSaleData"
|
|
|
+ :key="item.value"
|
|
|
+ :label="$t(item.label)"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <label class="search__label" >{{$t(`状态`)}}:</label>
|
|
|
+ <el-select class="inline-24" v-model="selectParam.status" :placeholder="$t(`请选择状态`)" @change="selectChange" size="small" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in statusData"
|
|
|
+ :key="item.value"
|
|
|
+ :label="$t(item.value)"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <label class="search__label" >{{$t(`上架时间`)}}:</label>
|
|
|
+ <el-date-picker
|
|
|
+ style="margin-right: 24px !important;"
|
|
|
+ size="small"
|
|
|
+ @change="selectChange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ v-model="dateSelect"
|
|
|
+ type="daterange"
|
|
|
+ :range-separator="$t(`至`)"
|
|
|
+ :start-placeholder="$t(`开始日期`)"
|
|
|
+ :end-placeholder="$t(`结束日期`)"
|
|
|
+ clearable>
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <el-input
|
|
|
+ style="width:200px;"
|
|
|
+ :placeholder="$t(`型号`)"
|
|
|
+ suffix-icon="el-icon-search"
|
|
|
+ v-model="selectParam.model" @keyup.native.enter="selectChange" @clear="selectChange" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <el-input
|
|
|
+ style="width:200px;"
|
|
|
+ :placeholder="$t(`规格`)"
|
|
|
+ suffix-icon="el-icon-search"
|
|
|
+ v-model="selectParam.spec" @keyup.native.enter="selectChange" @clear="selectChange" size="small" class="input-with-select inline-16 layout_search__panel" clearable>
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10">
|
|
|
+ <label class="search__label" >{{$t('领域')}}:</label>
|
|
|
+ <el-select class="inline-24" v-model="selectParam.tradefield" :placeholder="$t(`请选择状态`)" @change="selectChange" size="small" clearable >
|
|
|
+ <el-option
|
|
|
+ v-for="item in tradefieldData"
|
|
|
+ :key="item.value"
|
|
|
+ :label="$t(item.value)"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <div class="mt-10" v-if="siteid == 'HY' || siteid == 'TZ'">
|
|
|
+ <label class="search__label" >{{$t(`商品大类`)}}:</label>
|
|
|
+ <el-select class="inline-24" v-model="selectParam.categories" :placeholder="$t(`请选择商品大类`)" @change="selectChange" size="small" clearable >
|
|
|
+ <el-option
|
|
|
+ v-for="item in categoriesList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="$t(item.value)"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <selectTemplate title="供应方" payload="supplier" @onChange="onChange"></selectTemplate>
|
|
|
+ </template>
|
|
|
+ <template v-slot:tbList="scope">
|
|
|
+ <div>
|
|
|
+ <p :style="{color:scope.data.column.data.isonsale === 1?tool.getStatusColor('上架',true):tool.getStatusColor('下架',true)}" v-if="scope.data.column.columnname === 'isonsale'">
|
|
|
+ {{ scope.data.column.data.isonsale ? $t('上架') : $t('下架') }}
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'cover'">
|
|
|
+ <previewImage v-if="scope.data.column.data.attinfos[0]" class="image" :image="scope.data.column.data.attinfos[0]" :list="scope.data.column.data.attinfos" :deletebtn="false"></previewImage>
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'tradefield'">
|
|
|
+ <span v-if="JSON.stringify(scope.data.column.data.tradefield) !== '[]' && scope.data.column.data.tradefield">
|
|
|
+ <span v-for="item in scope.data.column.data.tradefield">
|
|
|
+ <el-tag style="margin-right: 10px;margin-top: 5px;margin-bottom: 5px">{{$t(item.tradefield)}}</el-tag>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'brand'">
|
|
|
+ <span v-if="JSON.stringify(scope.data.column.data.brand) !== '[]' && scope.data.column.data.brand">
|
|
|
+ <span v-for="item in scope.data.column.data.brand">
|
|
|
+ <el-tag style="margin-right: 10px;margin-top: 5px;margin-bottom: 5px" type="warning">{{$t(item.brandname)}}</el-tag>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'itemclass'">
|
|
|
+ <span v-if="JSON.stringify(scope.data.column.data.itemclass) !== '[]' && scope.data.column.data.itemclass">
|
|
|
+ <span v-for="item in scope.data.column.data.itemclass" :key="item.index">
|
|
|
+ <el-tag style="margin-right: 10px;margin-top: 5px;margin-bottom: 5px" type="success">{{$t(item.itemclassfullname)}}</el-tag>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ </span>
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'istool'" :style="{color:scope.data.column.data[[scope.data.column.columnname]] === 0?tool.getStatusColor('否',true):tool.getStatusColor('是',true)}">
|
|
|
+ {{scope.data.column.data[[scope.data.column.columnname]] === 0?$t('否'):$t('是')}}
|
|
|
+ </p>
|
|
|
+ <p v-else-if="scope.data.column.columnname === 'status'">
|
|
|
+ <span :style="tool.getStatusColor(scope.data.column.data[[scope.data.column.columnname]])" >{{$t(scope.data.column.data[[scope.data.column.columnname]])}}</span>
|
|
|
+ </p>
|
|
|
+ <div v-else-if="scope.data.column.columnname === 'nominalpressure'">
|
|
|
+ {{tool.nominalPressureSet(scope.data.column.data.nominalpressure)}}
|
|
|
+ </div>
|
|
|
+ <div v-else>{{scope.data.column.columnname === 'operation' || scope.data.column.data[scope.data.column.columnname]?scope.data.column.data[scope.data.column.columnname] : '--'}}</div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-slot:tbOpreation="scope">
|
|
|
+ <delData class="inline-16" :ownerid="scope.data.data.itemid" :sys_object="application" @delSuccess="delSuccess"></delData>
|
|
|
+ <recovery class="inline-16" :ownerid="scope.data.data.itemid" :sys_object="application" ownertable="item" @recoverySuccess="queryData"></recovery>
|
|
|
+ </template>
|
|
|
+ </basicLayout>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import previewImage from '@/components/previewImage/index'
|
|
|
+import recovery from "@/HManagement/ecycle/modules/recovery"
|
|
|
+import delData from "@/HManagement/ecycle/modules/delData"
|
|
|
+import batchDeletion from "@/HManagement/ecycle/modules/batchDeletion";
|
|
|
+import batchRecovery from "@/HManagement/ecycle/modules/batchRecovery";
|
|
|
+import selectTemplate from '@/components/generalTemplate/select'
|
|
|
+
|
|
|
+export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ application:'7',
|
|
|
+ applicationList:[
|
|
|
+ { label: '销售线索', value: "1" },
|
|
|
+ { label: '客户', value: "2" },
|
|
|
+ { label: '合同', value: "3" },
|
|
|
+ { label: '项目商机', value: "4" },
|
|
|
+ { label: '报价单', value: "5" },
|
|
|
+ { label: '合作伙伴', value: "6" },
|
|
|
+ { label: '商品', value: "7" },
|
|
|
+ { label: '公海线索', value: "8" }
|
|
|
+ ],
|
|
|
+ options:[],
|
|
|
+ isOnSaleData:[
|
|
|
+ { value:0, label:'否' },
|
|
|
+ { value:1, label:'是' }
|
|
|
+ ],
|
|
|
+ statusData:[
|
|
|
+ { value:'新建', label:'新建' },
|
|
|
+ { value:'审核', label:'审核' }
|
|
|
+ ],
|
|
|
+ selectParam:{
|
|
|
+ isonsale:'',
|
|
|
+ begindate:'',
|
|
|
+ enddate:'',
|
|
|
+ status:'',
|
|
|
+ model:'',
|
|
|
+ spec:'',
|
|
|
+ tradefield:'',
|
|
|
+ categories:'',
|
|
|
+ supplier:''
|
|
|
+ },
|
|
|
+ selectData:[],
|
|
|
+ tradefieldData:[],
|
|
|
+ dateSelect:'',
|
|
|
+ siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
|
|
|
+ categoriesList:[]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ components:{previewImage,recovery,delData,batchDeletion,batchRecovery,selectTemplate},
|
|
|
+ methods:{
|
|
|
+ queryData(){
|
|
|
+ this.$refs.basicLayout.param.content.where = this.selectParam
|
|
|
+ this.$refs.basicLayout.param.content.deleted = 1
|
|
|
+ this.$refs.basicLayout.listData()
|
|
|
+ },
|
|
|
+ applicationChange(val){
|
|
|
+ this.$emit("changeApplication",val)
|
|
|
+ },
|
|
|
+ delSuccess(){
|
|
|
+ this.queryData()
|
|
|
+ },
|
|
|
+ checkboxCallBack(val){
|
|
|
+ this.selectData = []
|
|
|
+ val.forEach((item,index) => {
|
|
|
+ this.selectData[index] = item.itemid
|
|
|
+ })
|
|
|
+ this.$refs.batchDeletion.length = this.selectData.length
|
|
|
+ this.$refs.batchRecovery.length = this.selectData.length
|
|
|
+ },
|
|
|
+ selectChange(){
|
|
|
+ if (this.dateSelect !== '' && this.dateSelect !== null){
|
|
|
+ this.selectParam.begindate = this.dateSelect[0]
|
|
|
+ this.selectParam.enddate = this.dateSelect[1]
|
|
|
+ }else {
|
|
|
+ this.selectParam.begindate = ''
|
|
|
+ this.selectParam.enddate = ''
|
|
|
+ }
|
|
|
+ this.$refs.basicLayout.param.content.pageNumber = 1
|
|
|
+ this.$refs.basicLayout.param.content.where = this.selectParam
|
|
|
+ this.$refs.basicLayout.listData()
|
|
|
+ },
|
|
|
+ onChange(data,type){
|
|
|
+ this.selectParam[type] = data
|
|
|
+ this.selectChange()
|
|
|
+ },
|
|
|
+ querytradefield(){
|
|
|
+ this.$store.dispatch('optiontypeselect','tradefield').then(res=>{
|
|
|
+ this.tradefieldData = res.data
|
|
|
+ })
|
|
|
+ this.$store.dispatch('optiontypeselect','categories').then(res=>{
|
|
|
+ this.categoriesList = res.data
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.querytradefield()
|
|
|
+ this.queryData()
|
|
|
+ },
|
|
|
+}
|
|
|
+
|
|
|
+</script>
|
|
|
+<style scoped>
|
|
|
+.image{
|
|
|
+ height: 38px;
|
|
|
+ width: 38px;
|
|
|
+ margin-top:0;
|
|
|
+}
|
|
|
+</style>
|