|
@@ -5,7 +5,7 @@ import { showToast } from 'vant'
|
|
import EditBaseEDB from './components/EditBaseEDB.vue'
|
|
import EditBaseEDB from './components/EditBaseEDB.vue'
|
|
import AddDateSequenceEdb from './components/AddDateSequenceEdb.vue'
|
|
import AddDateSequenceEdb from './components/AddDateSequenceEdb.vue'
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
-import {windCommonIndexCodeArr,THSCommonIndexStockCodeArr,THSCommonIndexFuturesCodeArr} from './util/config'
|
|
|
|
|
|
+import {windCommonIndexCodeArr,THSCommonIndexStockCodeArr,THSCommonIndexFuturesCodeArr,windAddCycle,thsAddCycle,windAddDateType,thsAddDateType,windAddRestorationMethod} from './util/config'
|
|
|
|
|
|
const router=useRouter()
|
|
const router=useRouter()
|
|
|
|
|
|
@@ -57,6 +57,10 @@ const databaseVal=ref('0')
|
|
const onConfirmDatabase=(e)=>{
|
|
const onConfirmDatabase=(e)=>{
|
|
databaseText.value=e.selectedOptions[0].label
|
|
databaseText.value=e.selectedOptions[0].label
|
|
databaseVal.value=e.selectedOptions[0].value
|
|
databaseVal.value=e.selectedOptions[0].value
|
|
|
|
+ ExtraPars.value = '';
|
|
|
|
+ cycleValue.value='D';
|
|
|
|
+ dateTypeValue.value= dataSourceText.value =='wind' ? 'Trading' : 'Tradedays';
|
|
|
|
+ restorationMethodValue.value='No';
|
|
showSelectDatabase.value=false
|
|
showSelectDatabase.value=false
|
|
}
|
|
}
|
|
|
|
|
|
@@ -99,6 +103,7 @@ const repeatEdbs=ref([])
|
|
|
|
|
|
|
|
|
|
// 数据来源
|
|
// 数据来源
|
|
|
|
+const ExtraPars = ref('');
|
|
const showSelectDataSource=ref(false)
|
|
const showSelectDataSource=ref(false)
|
|
const edbSourceOpts=ref([])
|
|
const edbSourceOpts=ref([])
|
|
const dataSourceText=ref('')
|
|
const dataSourceText=ref('')
|
|
@@ -113,7 +118,6 @@ async function getEDBSourceOpts(){
|
|
}
|
|
}
|
|
getEDBSourceOpts()
|
|
getEDBSourceOpts()
|
|
function onConfirmDataSource(e){
|
|
function onConfirmDataSource(e){
|
|
- console.log(e);
|
|
|
|
dataSourceText.value=e.selectedOptions[0].SourceName
|
|
dataSourceText.value=e.selectedOptions[0].SourceName
|
|
dataSourceVal.value=e.selectedOptions[0].EdbSourceId
|
|
dataSourceVal.value=e.selectedOptions[0].EdbSourceId
|
|
showSelectDataSource.value=false
|
|
showSelectDataSource.value=false
|
|
@@ -126,6 +130,10 @@ function onConfirmDataSource(e){
|
|
EdbCodeCommonChecked.value=[]
|
|
EdbCodeCommonChecked.value=[]
|
|
codeTypeText.value='期货常用指标'
|
|
codeTypeText.value='期货常用指标'
|
|
codeTypeVal.value=1
|
|
codeTypeVal.value=1
|
|
|
|
+ ExtraPars.value = '';
|
|
|
|
+ cycleValue.value='D';
|
|
|
|
+ dateTypeValue.value= dataSourceText.value =='wind' ? 'Trading' : 'Tradedays';
|
|
|
|
+ restorationMethodValue.value='No';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -209,7 +217,11 @@ const indexExsitCheck=()=>{
|
|
Source:dataSourceVal.value,
|
|
Source:dataSourceVal.value,
|
|
SubSource:databaseVal.value,
|
|
SubSource:databaseVal.value,
|
|
EdbCode:Array.from(new Set([...EdbCodeArr.value,...EdbCodeCommonChecked.value])).join(','),
|
|
EdbCode:Array.from(new Set([...EdbCodeArr.value,...EdbCodeCommonChecked.value])).join(','),
|
|
- StockCode:StockCode.value
|
|
|
|
|
|
+ StockCode:StockCode.value,
|
|
|
|
+ ExtraPars:ExtraPars.value,
|
|
|
|
+ Period: cycleValue.value || 'D',
|
|
|
|
+ Days: dateTypeValue.value,
|
|
|
|
+ PriceAdj:dataSourceVal.value == 2 ? (restorationMethodValue.value == 'No' ? '' : restorationMethodValue.value) : '',
|
|
}
|
|
}
|
|
apiDataEDB.existEDBCheck(params).then(res=>{
|
|
apiDataEDB.existEDBCheck(params).then(res=>{
|
|
if(res.Ret == 200){
|
|
if(res.Ret == 200){
|
|
@@ -235,17 +247,33 @@ const indexExsitCheck=()=>{
|
|
// return
|
|
// return
|
|
let stockList = res.Data.SearchItem.StockList || []
|
|
let stockList = res.Data.SearchItem.StockList || []
|
|
edbIndexDatas.value=[]
|
|
edbIndexDatas.value=[]
|
|
|
|
+ let nameSuffix = '';
|
|
|
|
+ let frequency = '日度';
|
|
|
|
+
|
|
|
|
+ let circleItem = addTargetCycle.value.find(_=>_.value == cycleValue.value);
|
|
|
|
+ if(circleItem && circleItem.name) nameSuffix += circleItem.name;
|
|
|
|
+ if(circleItem && circleItem.frequency) frequency = circleItem.frequency;
|
|
|
|
+ let dataTypeItem = addTargetDateType.value.find(_=>_.value == dateTypeValue.value);
|
|
|
|
+ if(dataTypeItem && dataTypeItem.name) nameSuffix += dataTypeItem.name;
|
|
|
|
+ if(dataSourceVal.value == 2){
|
|
|
|
+ let restorationMethodItem = windAddRestorationMethod.find(_=>_.value == restorationMethodValue.value);
|
|
|
|
+ if(restorationMethodItem && restorationMethodItem.name) nameSuffix += restorationMethodItem.name;
|
|
|
|
+ }
|
|
stockList.map((item,index) =>{
|
|
stockList.map((item,index) =>{
|
|
let isCommon = EdbCodeCommonArr.value.find(it => it.value == item.EdbCode)
|
|
let isCommon = EdbCodeCommonArr.value.find(it => it.value == item.EdbCode)
|
|
let params={
|
|
let params={
|
|
Source:dataSourceVal.value,
|
|
Source:dataSourceVal.value,
|
|
ClassifyId:0,
|
|
ClassifyId:0,
|
|
Unit:'',
|
|
Unit:'',
|
|
- Frequency:'日度',
|
|
|
|
- EdbName:isCommon?`${item.StockCode}${isCommon.label}`:`${item.StockCode}${item.EdbCode}`,
|
|
|
|
|
|
+ Frequency:frequency,
|
|
|
|
+ EdbName:isCommon?`${item.StockCode}${isCommon.label}${nameSuffix}`:`${item.StockCode}${item.EdbCode}${nameSuffix}`,
|
|
EdbCode:item.EdbCode,
|
|
EdbCode:item.EdbCode,
|
|
StockCode:item.StockCode,
|
|
StockCode:item.StockCode,
|
|
- DataList:item.DataList
|
|
|
|
|
|
+ DataList:item.DataList,
|
|
|
|
+ ApiExtraPars:ExtraPars.value,
|
|
|
|
+ Period: item.Period || 'D',
|
|
|
|
+ Days: item.Days,
|
|
|
|
+ PriceAdj:item.PriceAdj || '',
|
|
}
|
|
}
|
|
edbIndexDatas.value.push(params)
|
|
edbIndexDatas.value.push(params)
|
|
})
|
|
})
|
|
@@ -269,7 +297,44 @@ const edbNavigator=({id})=>{
|
|
// 日期序列指标 下一步
|
|
// 日期序列指标 下一步
|
|
const edbIndexDatas=ref([])
|
|
const edbIndexDatas=ref([])
|
|
const showAddDateSequence=ref(false)
|
|
const showAddDateSequence=ref(false)
|
|
|
|
+const addTargetCycle = computed(() => {
|
|
|
|
+ return dataSourceVal.value == 2 ? windAddCycle : thsAddCycle
|
|
|
|
+})
|
|
|
|
+const addTargetDateType = computed(() => {
|
|
|
|
+ return dataSourceVal.value == 2 ? windAddDateType : thsAddDateType
|
|
|
|
+})
|
|
|
|
+//周期
|
|
|
|
+const showCircleDia=ref(false);
|
|
|
|
+const cycleValue = ref('D');
|
|
|
|
+const cycleText = computed(() => {
|
|
|
|
+ return addTargetCycle.value.find(item => item.value == cycleValue.value)?.label || ''
|
|
|
|
+})
|
|
|
|
+const onConfirmCircleDia=(e)=>{
|
|
|
|
+ cycleValue.value=e.selectedOptions[0].value
|
|
|
|
+ showCircleDia.value=false
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//日期类型
|
|
|
|
+const showDateTypeDia=ref(false);
|
|
|
|
+const dateTypeValue = ref('Tradedays');
|
|
|
|
+const dateTypeText = computed(() => {
|
|
|
|
+ return addTargetDateType.value.find(item => item.value == dateTypeValue.value)?.label || ''
|
|
|
|
+})
|
|
|
|
+const onConfirmDateTypeDia=(e)=>{
|
|
|
|
+ dateTypeValue.value=e.selectedOptions[0].value
|
|
|
|
+ showDateTypeDia.value=false
|
|
|
|
+}
|
|
|
|
|
|
|
|
+//复权方式
|
|
|
|
+const showRestorationMethodDia=ref(false);
|
|
|
|
+const restorationMethodValue = ref('No');
|
|
|
|
+const restorationMethodText = computed(() => {
|
|
|
|
+ return windAddRestorationMethod.find(item => item.value == restorationMethodValue.value)?.label || ''
|
|
|
|
+})
|
|
|
|
+const onConfirmRestorationMethodDia=(e)=>{
|
|
|
|
+ restorationMethodValue.value=e.selectedOptions[0].value
|
|
|
|
+ showRestorationMethodDia.value=false
|
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -374,6 +439,17 @@ const showAddDateSequence=ref(false)
|
|
<img name="cross" class="edb-code-item-icon" src="@/assets/imgs/dataEDB/close_outline_black.png" @click="delEdbCode(index)"/>
|
|
<img name="cross" class="edb-code-item-icon" src="@/assets/imgs/dataEDB/close_outline_black.png" @click="delEdbCode(index)"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <van-field
|
|
|
|
+ v-if="dataSourceVal == 1"
|
|
|
|
+ v-model="ExtraPars"
|
|
|
|
+ label="参数(可选)"
|
|
|
|
+ placeholder="请输入参数"
|
|
|
|
+ input-align="right">
|
|
|
|
+ </van-field>
|
|
|
|
+ <van-cell title="周期" is-link :value="cycleText" @click="showCircleDia=true"/>
|
|
|
|
+ <van-cell title="日期类型" is-link :value="dateTypeText" @click="showDateTypeDia=true"/>
|
|
|
|
+ <van-cell v-if="dataSourceVal == 2" title="复权方式" is-link :value="restorationMethodText" @click="showRestorationMethodDia=true"/>
|
|
|
|
+ <div v-if="dataSourceVal == 2" class="edb-code-hint">*适用股票基金</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<div class="btns-wrap">
|
|
<div class="btns-wrap">
|
|
@@ -412,6 +488,48 @@ const showAddDateSequence=ref(false)
|
|
@cancel="showSelectDatabase=false"
|
|
@cancel="showSelectDatabase=false"
|
|
/>
|
|
/>
|
|
</van-popup>
|
|
</van-popup>
|
|
|
|
+ <!-- 选择周期 -->
|
|
|
|
+ <van-popup
|
|
|
|
+ v-model:show="showCircleDia"
|
|
|
|
+ round
|
|
|
|
+ position="bottom"
|
|
|
|
+ >
|
|
|
|
+ <van-picker
|
|
|
|
+ title="数据库"
|
|
|
|
+ :columns="addTargetCycle"
|
|
|
|
+ :columns-field-names="{text:'label',value:'value'}"
|
|
|
|
+ @confirm="onConfirmCircleDia"
|
|
|
|
+ @cancel="showCircleDia=false"
|
|
|
|
+ />
|
|
|
|
+ </van-popup>
|
|
|
|
+ <!-- 选择日期类型 -->
|
|
|
|
+ <van-popup
|
|
|
|
+ v-model:show="showDateTypeDia"
|
|
|
|
+ round
|
|
|
|
+ position="bottom"
|
|
|
|
+ >
|
|
|
|
+ <van-picker
|
|
|
|
+ title="数据库"
|
|
|
|
+ :columns="addTargetDateType"
|
|
|
|
+ :columns-field-names="{text:'label',value:'value'}"
|
|
|
|
+ @confirm="onConfirmDateTypeDia"
|
|
|
|
+ @cancel="showDateTypeDia=false"
|
|
|
|
+ />
|
|
|
|
+ </van-popup>
|
|
|
|
+ <!-- 选择复权方式-->
|
|
|
|
+ <van-popup
|
|
|
|
+ v-model:show="showRestorationMethodDia"
|
|
|
|
+ round
|
|
|
|
+ position="bottom"
|
|
|
|
+ >
|
|
|
|
+ <van-picker
|
|
|
|
+ title="数据库"
|
|
|
|
+ :columns="windAddRestorationMethod"
|
|
|
|
+ :columns-field-names="{text:'label',value:'value'}"
|
|
|
|
+ @confirm="onConfirmRestorationMethodDia"
|
|
|
|
+ @cancel="showRestorationMethodDia=false"
|
|
|
|
+ />
|
|
|
|
+ </van-popup>
|
|
<!-- 选择常用指标类型 -->
|
|
<!-- 选择常用指标类型 -->
|
|
<van-popup
|
|
<van-popup
|
|
v-model:show="showSelectCodeType"
|
|
v-model:show="showSelectCodeType"
|
|
@@ -551,7 +669,7 @@ const showAddDateSequence=ref(false)
|
|
}
|
|
}
|
|
|
|
|
|
.edb-code-hint{
|
|
.edb-code-hint{
|
|
- padding:0 16PX;
|
|
|
|
|
|
+ padding:0 16px;
|
|
color: #B1B1B1;
|
|
color: #B1B1B1;
|
|
font-size: 24px;
|
|
font-size: 24px;
|
|
margin: 20px 0 0 0;
|
|
margin: 20px 0 0 0;
|