浏览代码

销售询价单-bug修改

jingbb 5 月之前
父节点
当前提交
8778f5277a

+ 0 - 17
src/views/saleCode/saleInquiryForm/components/BaseShipArchive.api.ts

@@ -1,17 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import { useMessage } from "/@/hooks/web/useMessage";
-
-const { createConfirm } = useMessage();
-
-enum Api {
-  list = '/baseCode/baseShipArchive/list',
-  
-}
-
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-

+ 0 - 94
src/views/saleCode/saleInquiryForm/components/BaseShipArchive.data.ts

@@ -1,94 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-import { getWeekMonthQuarterYear } from '/@/utils';
-//列表数据
-export const columns: BasicColumn[] = [
-   {
-    title: 'IMO',
-    align:"center",
-    dataIndex: 'imo'
-   },
-   {
-    title: '船名称(ship name)',
-    align:"center",
-    dataIndex: 'shipName'
-   },
-   {
-    title: '客户名称(customer name)',
-    align:"center",
-    dataIndex: 'relateCustomer'
-   },
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-	{
-      label: "IMO",
-      field: 'imo',
-      component: 'Input',
-      // labelWidth: 150,
-      //colProps: {span: 6},
- 	},
-	{
-      label: "船名称(ship name)",
-      field: 'shipName',
-      labelWidth: 150,
-      component: 'Input',
-      //colProps: {span: 6},
- 	},
-   {
-    label: '客户名称(customer name)',
-    field: 'relateCustomer',
-    component: 'Input',
-    labelWidth: 180,
-
-   },
-	{
-      label: "hull number",
-      field: 'hullNumber',
-      component: 'Input',
-      //colProps: {span: 6},
- 	},
-   {
-    label: "船厂(ship factory)",
-    field: 'shipFactory',
-    component: 'JSelectMultiple',
-    labelWidth: 150,
-    componentProps:{
-      dictCode:"ship_factory"
-   },
-    //colProps: {span: 6},
- },
- {
-  label: "造船日期(ship date)",
-  field: "shipDate",
-  component: 'RangePicker',
-  labelWidth: 150,
-  componentProps: {
-      valueType: 'Date',
-      showTime:true
-  },
-  //colProps: {span: 6},
-},
-{
-  label: "船类型(ship type)",
-  field: 'shipType',
-  component: 'JSelectMultiple',
-  labelWidth: 180,
-  componentProps:{
-    dictCode:"ship_type"
- },
-      //colProps: {span: 6},
-},
-
-{
-  label: "状态(status)",
-  field: 'status',
-  component: 'JSelectMultiple',
-  componentProps:{
-    dictCode:"valid_status"
-  },
-  //colProps: {span: 6},
-},
-];

+ 0 - 48
src/views/saleCode/saleInquiryForm/components/BaseShipArchiveAccessories.data.ts

@@ -1,48 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-import { getWeekMonthQuarterYear } from '/@/utils';
-//列表数据
-export const columns: BasicColumn[] = [
-   
-   {
-    title: '配件类型(accessory type)',
-    align:"center",
-    dataIndex: 'accessoryType',
-    key: 'accessoryType'
-   },
-   {
-    title: '规格(specifications)',
-    align:"center",
-    dataIndex: 'specifications',
-    key: 'specifications'
-   },
-   {
-    title: '型号(model)',
-    align:"center",
-    dataIndex: 'model',
-    key: 'model'
-   },
-   {
-    title: '序列号(serial number)',
-    align:"center",
-    dataIndex: 'serialNumber',
-    key: 'serialNumber'
-   },
-   /* {
-    title: '备注',
-    align:"center",
-    dataIndex: 'notes',
-    key: 'notes'
-   },
-   {
-    title: '附件',
-    align:"center",
-    dataIndex: 'attachs',
-    key: 'attachs'
-   }, */
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-];

+ 0 - 104
src/views/saleCode/saleInquiryForm/components/BaseShipArchiveAccessoriesModal.vue

@@ -1,104 +0,0 @@
-<template>
- <a-modal
-      title="配件明细(accessories details)"
-      width="70%"
-      :visible="visible"
-      :maskClosable="false"
-      switchFullscreen
-      @cancel="handleCancel">
-        <div>
-          <a-table
-                :columns="columns"
-                :row-key="record => record.id"
-                :data-source="dataSource"
-                bordered
-                size="small"
-                height="500"
-                :pagination="false"
-                :scroll="{ x: 1000, y: 500 }"
-            > 
-                <template #attachs="{ text, record,index }">
-                    <a :href="baseUrl+record.attachs">{{record.attachs}}</a>
-                </template>
-            </a-table>
-        </div>
-   </a-modal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref,reactive} from 'vue';
-    import { useGlobSetting } from '/@/hooks/setting';
-    import {defHttp} from '/@/utils/http/axios';
-    const { domainUrl } = useGlobSetting();
-    var visible = ref(false);
-    var columns = ref([
-          {
-          title: '配件类型(accessory type)',
-          align:"center",
-          dataIndex: 'accessoryType',
-          key: 'accessoryType'
-        },
-        {
-          title: '规格(specifications)',
-          align:"center",
-          dataIndex: 'specifications',
-          key: 'specifications'
-        },
-        {
-          title: '型号(model)',
-          align:"center",
-          dataIndex: 'model',
-          key: 'model'
-        },
-        {
-          title: '序列号(serial number)',
-          align:"center",
-          dataIndex: 'serialNumber',
-          key: 'serialNumber'
-        },
-        {
-          title: '备注(notes)',
-          align:"center",
-          dataIndex: 'notes',
-          key: 'notes'
-        },
-        {
-          title: '附件(attachs)',
-          align:"center",
-          dataIndex: 'attachs',
-          key: 'attachs',
-          slots: { customRender: 'attachs' },
-        },
-    ])
-    var dataSource=ref([])
-    const baseUrl = domainUrl + '/sys/common/static/';
-    function getTable(record){
-        visible.value = true
-        let params={headId:record.id}
-        defHttp.get({url:"/baseCode/baseShipArchiveAccessories/list",params}).then(res=>{
-        if(res){
-          dataSource.value = res.records
-        }
-    })
-    }
-    function handleCancel(){
-      visible.value = false;
-    }
-    defineExpose({
-      getTable
-    });
-  </script>
-
-<style lang="less" scoped>
-	/** 时间和数字输入框样式 */
-  :deep(.ant-input-number) {
-    width: 100%;
-  }
-
-  :deep(.ant-calendar-picker) {
-    width: 100%;
-  }
-  /deep/.ant-modal-body{
-    padding: 14px !important;
-  }
-</style>

+ 20 - 14
src/views/saleCode/saleInquiryForm/components/SaleInquiryFormForm.vue

@@ -147,7 +147,7 @@
       </a-tab-pane>
     </a-tabs>
     <SelectShipSModal ref="SelectShipSModalRef" @select="addShip"></SelectShipSModal>
-    <BaseShipArchiveAccessoriesList ref="BaseShipArchiveAccessoriesListRef"></BaseShipArchiveAccessoriesList>
+    <BaseShipArchiveAccessoriesModal ref="BaseShipArchiveAccessoriesListRef"></BaseShipArchiveAccessoriesModal>
     <SelectPrpductModal ref="SelectPrpductModalRef" @selectProduct="addProduct"></SelectPrpductModal>
     <SelectProjectModal ref="SelectProjectModalRef" @selectProject="addProject"></SelectProjectModal>
   </a-spin>
@@ -160,9 +160,9 @@
   import { querySaleInquiryFormShipListByMainId, querySaleInquiryFormProductListByMainId, queryDataById, saveOrUpdate } from '../SaleInquiryForm.api';
   import { JVxeTable } from '/@/components/jeecg/JVxeTable';
   import {saleInquiryFormShipColumns, saleInquiryFormProductColumns} from '../SaleInquiryForm.data';
-  import SelectShipSModal from './SelectShipSModal.vue';
-  import BaseShipArchiveAccessoriesList from './BaseShipArchiveAccessoriesModal.vue';
-  import SelectPrpductModal from './SelectPrpductModal.vue';
+  import SelectShipSModal from '../../../publicComponents/SelectShipSModal.vue';
+  import BaseShipArchiveAccessoriesModal from '../../../publicComponents/BaseShipArchiveAccessoriesModal.vue';
+  import SelectPrpductModal from '../../../publicComponents/SelectPrpductModal.vue';
   import SelectProjectModal from './SelectProjectModal.vue';
   import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
   import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
@@ -180,7 +180,7 @@
       JVxeTable,
 			JFormContainer,
       SelectShipSModal,
-      BaseShipArchiveAccessoriesList,
+      BaseShipArchiveAccessoriesModal,
       SelectPrpductModal,
       JUpload,
       SelectProjectModal,
@@ -390,15 +390,21 @@
         saleInquiryFormProductTable.dataSource=arrProduct      
       }
       function addProject(data) {
-        formData.inquiryProject = data[0].id
-        formData.projectName = data[0].name
-        formData.inquiryCustomer =data[0].customerId
-        formData.customerName =data[0].customerId_dictText
-        customerOption.value.map(item=>{
-          if(item.value==data[0].customerId){
-            formData.priority =item.priority
-          }
-        })
+        if(data.length==0){
+          formData.inquiryProject = ''
+          formData.projectName = ''
+        }else{
+          formData.inquiryProject = data[0].id
+          formData.projectName = data[0].name
+          formData.inquiryCustomer =data[0].customerId
+          formData.customerName =data[0].customerId_dictText
+          customerOption.value.map(item=>{
+            if(item.value==data[0].customerId){
+              formData.priority =item.priority
+            }
+          })
+        }
+        
       }
       function getCustomerOptions(){
           let params = {pageSize:'-1',status:1}

+ 0 - 340
src/views/saleCode/saleInquiryForm/components/SelectPrpductModal.vue

@@ -1,340 +0,0 @@
-<template>
-    <a-modal
-      title="选择产品(select product)"
-      width="95%"
-      :visible="visible"
-      :maskClosable="false"
-      switchFullscreen
-      @ok = "handleOk"
-      @cancel="handleCancel">
-        <div>
-          <a-card  :body-style="{ padding: '10px' }" :bordered="false" style="margin: 10px;">
-            <div class="table-page-search-wrapper">
-                <a-form :model="queryParams" :label-col="labelCol" :wrapper-col="wrapperCol" @keyup.enter.native="searchQuery">
-                <a-row :gutter="24">
-                    <a-col :md="6" :sm="8">
-                        <a-form-item label="分类(class)">
-                            <!-- <a-input placeholder="请输入" v-model:value="queryParams.classId"></a-input> -->
-                            <JSelectInput   v-model:value="queryParams.classId"  placeholder="请选择" :options="classOption" ></JSelectInput>
-                        </a-form-item>
-                    </a-col>
-                    <a-col :md="6" :sm="8">
-                        <a-form-item label="编码(code)">
-                            <a-input placeholder="请输入" v-model:value="queryParams.code"></a-input>
-                        </a-form-item>
-                    </a-col>
-                    <a-col :md="6" :sm="8">
-                        <a-form-item label="中文名(Chinese name)">
-                            <a-input placeholder="请输入" v-model:value="queryParams.chineseName"></a-input>
-                        </a-form-item>
-                    </a-col>
-                    <template v-if="toggleSearchStatus">
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="英文名(English name)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.englishName"></a-input>
-                            </a-form-item>
-                        </a-col>
-                        <!-- <a-col :md="6" :sm="8">
-                            <a-form-item label="规格(specifications)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.specifications"></a-input>
-                            </a-form-item>
-                        </a-col> -->
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="型号(model)">
-                                <a-input placeholder="请输入" v-model:value="queryParams.model"></a-input>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="虚拟产品(virtual product)" :label-col="labelCol1" :wrapper-col="wrapperCol1">
-                                <JDictSelectTag v-model:value="queryParams.virtualProduct" placeholder="请选择" dictCode="yes_or_no"/>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="有害物质(harmful substances)" :label-col="labelCol1" :wrapper-col="wrapperCol1">
-                                <JDictSelectTag v-model:value="queryParams.harmfulSubstances" placeholder="请选择" dictCode="yes_or_no"/>
-                            </a-form-item>
-                        </a-col>
-                    </template>
-                    <a-col :md="6" :sm="8">
-                        <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-                            <a-button type="primary" @click="searchQuery" >查询(search)</a-button>
-                            <a-button type="primary" @click="searchReset"  style="margin-left: 8px">重置(reset)</a-button>
-                            <a @click="handleToggleSearch" style="margin-left: 8px">
-                            {{ toggleSearchStatus ? '收起' : '展开' }}
-                            <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
-                            </a>
-                        </span>
-                    </a-col>
-                </a-row>
-            </a-form>
-           </div>
-        </a-card>
-
-        <a-card  :body-style="{ padding: '10px' }" :bordered="false" style="margin: 10px;">
-            <a-alert type="info" show-icon class="alert" style="margin-bottom: 8px">
-            <template #message>
-                <template v-if="selectedRowKeys.length > 0">
-                <span>已选中 {{ selectedRowKeys.length }} 条记录</span>
-                <a-divider type="vertical" />
-                <a @click="selectedRowKeys = []">清空</a>
-                </template>
-                <template v-else>
-                <span>未选中任何数据</span>
-                </template>
-            </template>
-            </a-alert>
-            <a-table
-                :columns="columns"
-                :row-key="record => record.id"
-                :data-source="dataSource"
-                bordered
-                size="small"
-                @change="handleTableChange"
-                :pagination="pagination"
-                :scroll="{ x: 2500, y: 300 }"
-                :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
-            >
-            </a-table>
-        </a-card>
-      </div>
-    </a-modal>
-</template>
-<script lang="ts" setup>
-    import {ref, reactive } from 'vue';
-    import { defHttp } from '/@/utils/http/axios';
-    import { message } from 'ant-design-vue';
-    import { filterObj, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
-    import { JDictSelectTag} from '/@/components/Form';
-    import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
-    const emit = defineEmits([ 'selectProduct']); //定义emit
-    let classOption = ref([])
-    var visible = ref(false)
-    const columns = [
-        {
-            title: '分类(class)',
-            dataIndex: 'classId_dictText',
-            key: 'classId_dictText',
-            align:"center"
-        },
-        {
-            title: '编码(code)',
-            dataIndex: 'code',
-            key: 'code',
-            align:"center"
-        },
-        {
-            title: '中文名(Chinese name)',
-            dataIndex: 'chineseName',
-            key: 'chineseName',
-            align:"center",
-            width:200
-        },
-        {
-            title: '英文名(English name)',
-            key: 'englishName',
-            dataIndex: 'englishName',
-            align:"center"
-        },
-        // {
-        //     title: '规格(specifications)',
-        //     key: 'specifications',
-        //     dataIndex: 'specifications',
-        //     align:"center"
-        // },
-        {
-            title: '型号(model)',
-            key: 'model',
-            dataIndex: 'model',
-            align:"center"
-        },
-        {
-            title: '计量单位(measurement unit)',
-            key: 'measurementUnit',
-            dataIndex: 'measurementUnit',
-            align:"center",
-            width:250
-        },
-        {
-            title: '虚拟产品(virtual product)',
-            key: 'virtualProduct',
-            dataIndex: 'virtualProduct',
-            align:"center",
-            customRender:function (t, r, index) {
-              if(t.text==1){
-                return '是(yes)'
-              }else if(t.text==0){
-                return '否(no)'
-              }else{
-                return ''
-              } 
-            }
-        },
-        {
-            title: '有害物质(harmful substances)',
-            key: 'harmfulSubstances',
-            dataIndex: 'harmfulSubstances',
-            align:"center",
-            width:250,
-            customRender:function (t, r, index) {
-              if(t.text==1){
-                return '是(yes)'
-              }else if(t.text==0){
-                return '否(no)'
-              }else{
-                return ''
-              } 
-            }
-        },
-    ];
-    const labelCol = ref({
-    xs: { span: 24 },
-    sm: { span: 9 },
-    });
-    const wrapperCol = ref({
-        xs: { span: 24 },
-        sm: { span: 15 },
-    });
-    const labelCol1 = ref({
-    xs: { span: 24 },
-    sm: { span: 12 },
-    });
-    const wrapperCol1 = ref({
-        xs: { span: 24 },
-        sm: { span: 12 },
-    });
-    const dataSource =ref([]);
-    let selectedRowKeys = ref([]);
-    let selectedRows = ref([]);
-    const toggleSearchStatus = ref(false);
-    const queryParams = ref({
-        classId:'',
-        code:'',
-        chineseName:'',
-        englishName:'',
-        specifications:'',
-        model:'',
-        chineseAlias:'',
-        englishAlias:'',
-        status:'',
-        virtualProduct:'',
-        harmfulSubstances:'',
-    });
-    let pagination = ref({
-      current: 1,
-      pageSize: 10,
-      total: '', // 假设总共有100条数据
-      showSizeChanger: true,
-      showQuickJumper: true,
-      showTotal: (total, range) => {
-          return range[0] + "-" + range[1] + " 共" + total + "条"
-      },
-      size:'small'
-    });
-    function loadData(){
-        let params = getQueryParams();
-        defHttp
-        .get({ url: '/baseCode/baseProductArchive/list',params}, { isTransformResponse: false })
-        .then((res) => {
-            if (res.success) {
-                dataSource.value = res.result.records;
-                pagination.value.total = res.result.total;
-                pagination.value.current = res.result.current;
-                pagination.value.pageSize = res.result.size;                
-            } else {
-                message.error(res.message);
-            }
-        })
-        .finally(() => {
-            // loading.value = false;
-        });
-    }
-    function getQueryParams(){
-        let params = Object.assign(queryParams.value);
-        params.pageNo = pagination.value.current;
-        params.pageSize = pagination.value.pageSize;
-        return filterObj(params);
-    }
-    function handleTableChange(paginations, filters, sorter){
-        pagination.value.total = paginations.total;
-        pagination.value.current = paginations.current;
-        pagination.value.pageSize = paginations.pageSize;
-        loadData()
-    };
-    function getOptiom(){
-    defHttp
-        .get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
-        .then((res) => {
-            if (res.success) {
-              classOption.value = []
-              res.result.records.forEach(element => {
-                  var obj = {
-                    label: element.name?element.name:'无名称请维护',
-                    value: element.id?element.id:''
-                  };
-                  classOption.value.push( obj)
-              });    
-            }
-        })
-        .finally(() => {
-            // loading.value = false;
-        });
-  }
-    function searchQuery(){
-        loadData();
-    }
-    function searchReset(){
-        queryParams.value = {
-            classId:'',
-            code:'',
-            chineseName:'',
-            englishName:'',
-            specifications:'',
-            model:'',
-            chineseAlias:'',
-            englishAlias:'',
-            status:'',
-            virtualProduct:'',
-            harmfulSubstances:'',
-        }
-        pagination.value.current =1;
-        pagination.value.pageSize = 10; 
-        loadData();
-    }
-    function handleToggleSearch(){
-        toggleSearchStatus.value = !toggleSearchStatus.value;
-    }
-    function onSelectChange(keys,rows){
-        selectedRowKeys.value = keys
-        selectedRows.value = rows
-    }
-    function handleOk(){
-      if(selectedRowKeys.value.length==0){
-        message.error('请勾选数据');
-      }else{
-        emit('selectProduct', selectedRows.value)
-        handleCancel()
-      }
-    }
-    function handleCancel(){
-      visible.value = false
-      selectedRowKeys.value = []
-      selectedRows.value=[]
-    }
-    function getTable(){
-        visible.value = true
-        loadData()
-        getOptiom()
-    }
-    defineExpose({
-      getTable
-    });
-</script>
-<style scoped lang="less">
-/deep/.ant-form-item{
-    margin-bottom: 8px !important;
-}
-// /deep/.ant-table-wrapper .ant-table-thead > tr > th, .ant-table-wrapper .ant-table-thead > tr > td{
-//     padding: 8px !important;
-// }
-
-</style>

+ 0 - 84
src/views/saleCode/saleInquiryForm/components/SelectShipSModal.vue

@@ -1,84 +0,0 @@
-<template>
-    <a-modal
-      title="选择船(select ship)"
-      width="95%"
-      :visible="visible"
-      :maskClosable="false"
-      switchFullscreen
-      @ok = "handleOk"
-      @cancel="handleCancel">
-      <div>
-            <!--引用表格-->
-        <BasicTable @register="registerTable" :rowSelection="rowSelection"></BasicTable>
-        </div>
-      </a-modal>
-</template>
-<script lang="ts" name="baseCode-baseShipArchive" setup>
-  import {ref, reactive } from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import {columns, searchFormSchema} from './BaseShipArchive.data';
-  import {list} from './BaseShipArchive.api';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  const queryParam = reactive<any>({});
-  var visible = ref(false);
-  const emit = defineEmits([ 'select']); //定义emit
-  //注册model
-  const { createMessage} = useMessage();
-  //注册table数据
-  const { tableContext} = useListPage({
-      tableProps:{
-           api:list,
-           columns,
-           canResize:false,
-           formConfig: {
-              schemas: searchFormSchema,
-              autoSubmitOnEnter:true,
-              showAdvancedButton:true,
-              fieldMapToNumber: [
-              ],
-              fieldMapToTime: [
-                 ['shipDate', ['shipDate_begin', 'shipDate_end'], 'YYYY-MM-DD HH:mm:ss'],
-              ],
-            },
-           showTableSetting:false,
-           showActionColumn:false,
-           actionColumn: {
-               width: 200,
-               fixed:'right'
-            },
-            beforeFetch: (params) => {
-              return Object.assign(params, queryParam);
-            },
-      }
-  })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-  
-  function handleCancel() {
-    visible.value = false;
-    selectedRowKeys.value = []
-  }
-    function handleOk() {
-        if(selectedRowKeys.value.length==0){
-            createMessage('请选择数据')
-        }else{
-            emit('select',rowSelection.selectedRows)
-            handleCancel()
-        }  
-    }
-   function getTable(){
-    visible.value = true
-   }
-   defineExpose({
-    getTable
-  });
-
-
-</script>
-
-<style lang="less" scoped>
-  :deep(.ant-picker),:deep(.ant-input-number){
-    width: 100%;
-  }
-</style>